输入类型的宽度=文本元素

时间:2009-07-17 14:56:05

标签: html css input width

为什么这样做:

<input type="text" style="width: 10px; padding: 2px"/>
<div style="width: 10px; border: solid 1px black; padding: 2px">&nbsp;</div>

输入最终比IE6和FF3中的div宽2 px?我错过了什么?

编辑: 正如许多人所说,边界是问题所在。如果我在输入上设置border:0px,它将具有与具有0 px边框的div相同的宽度(通过将其包裹在带边框的SPAN中进行验证)。

然而,当我测量绘画中的元素时,div的内部空间为14像素,正如预期的那样(10 + 2 + 2)。但是,输入内部有16像素,然后是外部边框。为什么是这样?可能不是一个错误,因为它发生在IE6和FF3中,但我不明白。

4 个答案:

答案 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比它实际上短两个像素。