我在 IE 中的 input[text] 字段的宽度上遇到问题,所有版本。
我有一个明确设置宽度为 250 像素的 div。在这个 div 中,我有一个宽度设置为 100% 的输入文本字段。此输入还具有 10 像素的内部左填充。
在 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;}