Проблема поля ввода шириной 100% с длинным текстом внутри (<input width=100% value="очень очень ... длинный текст" /> ), растягивающая ширину страницы до немеряного состояния в глюкавом Internet Explorer’e оказалась решаема несколькими способами. - Таблица вокруг input’a не должна иметь растягивающуюся ширину. Данный способ решает проблему, но не мою. Я всё-таки хочу растянуть и table и input до 100%, в моём случае это критично.
- Подождать полной загрузки страницы, запомнить ширину (clientWidth) input’a, присвоить полученное значение в input.style.width, а лишь затем заполнить value. Но это отстой. Окно браузера может растягиваться в процессе работы со страницей.
- После загрузки страницы всё это почему-то работает если в строке присутствует хотя бы один нелатиничный символ. Почему-то кириллица или пробел (не а именно его код, получаемый в результате) решает проблему.
В javascript’e, для того чтобы быть уверенным что в тексте присутствует не только латиница, при присваивании input’у значения можно указывать что-то вроде:
myinput.value.replace(/n/g, ' ')+unescape('%A0')
Это работает в JS, однако, если устанавливать код в value из PHP — нет. Таблица остаётся растянутой.
- Короче, спустя сутки, я нашёл таки решение. В таблице стоящей вокруг input’a нужно устанавливать style="table-layout: fixed". И всё хорошо работает.
Если кому-то эти советы помогли, прошу оставить комментарий. |