我在IE浏览器中遇到了input[text]字段宽度的问题,所有版本都有这个问题。
我有一个宽度明确设置为250px的div。在这个div中,我有一个宽度设置为100%的输入文本字段。此输入还具有内部左填充10px。
在IE中,它将宽度呈现为100% + 10px。我无法想出一种将宽度限制在容器内的技术。
最初,这个问题在所有浏览器中都出现了,但在FF、Safari和Chrome中很容易修复,只需添加max-width:100%即可。IE6/7不支持此功能,而IE8虽然支持,但仍会将填充添加到宽度中。
我知道IE的框模型包括边框和外边距在其宽度计算中,因此即使理解了这一点,我仍然无法找到解决方法。
我还试图找到比仅将我的输入宽度设置为240px更好的解决方案,因为在这个表单中有各种输入,它们的容器大小各不相同,我想找到一个通用的解决方案。
以下是一些代码:
<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;}