为什么当我这样做:
<input type="text" style="width: 10px; padding: 2px"/>
<div style="width: 10px; border: solid 1px black; padding: 2px"> </div>
输入结束了2像素比在两者IE6和FF3在div更宽? 我在想什么?
编辑:正如很多人说,边界问题。 如果我设置边框:0像素上的投入,这将具有相同的宽度与0像素边界股利(通过包装它镶上SPAN内部验证)。
然而,当我测量油漆的元素,在div具有14像素内部,正如预期的(10 + 2 + 2)。 输入,然而,有一个16像素内,然后那外面的边框。 为什么是这样? 也许不是因为它的错误发生在两个IE6和FF3,但我不明白。
我相信这是浏览器是如何呈现自己的标准输入。 如果设置输入上的边界:
<input type="text" style="width: 10px; padding: 2px; border: 1px solid black"/>
<div style="width: 10px; border: solid 1px black; padding: 2px"> </div>
然后两者是相同的宽度,至少在FF。
元素的可见宽度为width + padding + border + outline
,如此看来,你是忘记了输入元素的边界。 也就是说,可以说,对于大多数(一些?)浏览器的输入元素的默认边框宽度实际上是为2px的,而不是一个计算。 因此,你的输入显示为2像素宽。 尝试明确设置border-width
输入,或使你的DIV宽。
我想你忘记了边界。 其在DIV上一像素宽的边框会带走总长度的两个像素。 因此它会出现虽然DIV是两个像素小于它实际上是。