Html 输入类型的宽度=文本元素
为什么我会这样做:Html 输入类型的宽度=文本元素,html,css,input,width,Html,Css,Input,Width,为什么我会这样做: <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,它将具有与具有0px边框的di
<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,它将具有与具有0px边框的div相同的宽度(通过将其包装在带边框的范围内进行验证)
然而,当我测量油漆中的元素时,div的内部有14像素,正如预期的那样(10+2+2)。然而,输入有一个16像素的内部,然后是外部的边界。为什么会这样?可能不是一个bug,因为它发生在IE6和FF3中,但我不理解。元素的可见宽度是
width+padding+border+outline
,因此您似乎忘记了输入元素上的边框。也就是说,在大多数(某些?)浏览器上,输入元素的默认边框宽度实际上计算为2px,而不是1。因此,您的输入显示为2倍宽。尝试在输入端显式设置边框宽度,或将div加宽。输入宽度是边框宽度的10+2倍1 px我认为您忘记了边框。在Div上有一个像素宽的边框将去掉两个像素的总长度。因此,div看起来比实际短两个像素。我相信这正是浏览器呈现标准输入的方式。如果在输入上设置边框:
<input type="text" style="width: 10px; padding: 2px; border: 1px solid black"/>
<div style="width: 10px; border: solid 1px black; padding: 2px"> </div>
那么两者的宽度相同,至少在FF中是这样。否!宽度+边框=实际宽度!所以输入元素看起来更大了。你说大纲是指边距,还是大纲是我从未听说过的新概念?在这里阅读大纲:它说它不计入框的宽度,这是真的,但它确实改变了可见宽度。谢谢。看起来它实际上是一个2px边框,但在视觉上看起来就像1px。