У меня проблема с шириной полей ввода [текст] в IE, все версии.
У меня есть div с явно установленной шириной 250px. В этом 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;}