У меня возникла проблема с шириной полей ввода [текста] в IE, всех версий.css: проблема с шириной и заполнением ввода в IE
У меня есть div с явно установленной шириной 250 пикселей. В этом div у меня есть текстовое поле ввода с шириной, установленной на 100%. Этот вход также имеет внутреннее левое заполнение 10px.
В IE он отображает ширину как 100% + 10px. Я не могу определить метод ограничения ширины контейнера.
Эта проблема возникла во всех браузерах, но ее было очень легко исправить в FF, Safari и Chrome, добавив max-width: 100%. IE6/7 не поддерживает это, в то время как IE8 делает, но он также добавляет дополнение к ширине.
Я понимаю, что модель ящика IE включает границу и маржу в вычислениях ширины, поэтому с учетом того, что понято, я все еще не могу понять, как это сделать.
Я также пытаюсь найти лучшее решение, чем просто установить ширину ввода на 240 пикселей с помощью прокладки, потому что в этой форме есть разные входы, контейнеры которых различаются по размеру, и я бы хотел найти универсальное решение.
Вот код:
<div class="places_edit_left">
<h4>PHONE <strong>(NOT USER EDITABLE)</strong></h4>
<input type="text" value="" name="phoneNumber"/>
<h4>ADDRESS<strong>(NOT USER EDITABLE)</strong></h4>
<input type="text" value="" name="address"/>
</div>
CSS
.places_edit_left{ width:250px; }
.places_edit_left input{ width:100%; max-width:100%; padding-left:10px;}
Тип doctype установлен правильно для xhtml transitional. Сравните их с страницей quirksmode. Я подозреваю, что даже в строгом режиме IE обрабатывает элементы формы, подобные тем, что они находятся в режиме quirks. – 2009-07-23 22:35:40