输入类型的宽度=文本元素(Width of input type=text element)

2019-06-26 05:42发布

为什么当我这样做:

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

输入结束了2像素比在两者IE6和FF3在div更宽? 我在想什么?

编辑:正如很多人说,边界问题。 如果我设置边框:0像素上的投入,这将具有相同的宽度与0像素边界股利(通过包装它镶上SPAN内部验证)。

然而,当我测量油漆的元素,在div具有14像素内部,正如预期的(10 + 2 + 2)。 输入,然而,有一个16像素内,然后那外面的边框。 为什么是这样? 也许不是因为它的错误发生在两个IE6和FF3,但我不明白。

Answer 1:

我相信这是浏览器是如何呈现自己的标准输入。 如果设置输入上的边界:

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

然后两者是相同的宽度,至少在FF。



Answer 2:

元素的可见宽度为width + padding + border + outline ,如此看来,你是忘记了输入元素的边界。 也就是说,可以说,对于大多数(一些?)浏览器的输入元素的默认边框宽度实际上是为2px的,而不是一个计算。 因此,你的输入显示为2像素宽。 尝试明确设置border-width输入,或使你的DIV宽。



Answer 3:

输入宽度为10 + 2倍的1像素为边界



Answer 4:

我想你忘记了边界。 其在DIV上一像素宽的边框会带走总长度的两个像素。 因此它会出现虽然DIV是两个像素小于它实际上是。



文章来源: Width of input type=text element