为什么这样做:
<input type="text" style="width: 10px; padding: 2px"/>
<div style="width: 10px; border: solid 1px black; padding: 2px"> </div>
输入最终比IE6和FF3中的div宽2 px?我错过了什么?
编辑: 正如许多人所说,边界是问题所在。如果我在输入上设置border:0px,它将具有与具有0 px边框的div相同的宽度(通过将其包裹在带边框的SPAN中进行验证)。
然而,当我测量绘画中的元素时,div的内部空间为14像素,正如预期的那样(10 + 2 + 2)。但是,输入内部有16像素,然后是外部边框。为什么是这样?可能不是一个错误,因为它发生在IE6和FF3中,但我不明白。
答案 0 :(得分:20)
我认为这就是浏览器呈现标准输入的方式。如果在输入上设置边框:
<input type="text" style="width: 10px; padding: 2px; border: 1px solid black"/>
<div style="width: 10px; border: solid 1px black; padding: 2px"> </div>
然后两者的宽度相同,至少在FF中。
答案 1 :(得分:4)
元素的可见宽度为width + padding + border + outline
,因此您似乎忘记了输入元素上的边框。也就是说,大多数(某些?)浏览器上的输入元素的默认边框宽度实际上计算为2px,而不是1。因此,您的输入显示为2px更宽。尝试在输入上明确设置border-width
,或者使div更宽。
答案 2 :(得分:0)
边框
的输入宽度为10 + 2倍1 px答案 3 :(得分:0)
我认为你忘记了边界。在Div上具有一个像素宽的边框将带走两个总长度的像素。因此,它看起来好像div比它实际上短两个像素。