我正在努力理解textarea 和输入文本的cols
和属性的行为。size
虽然它应该是直截了当的,但如果 cols 和 size 值相同,我无法弄清楚为什么它们有不同的宽度?
根据文档,这两个属性都应该调整元素的大小,以便给定数量的字符可以放在里面:
... size属性指定输入元素的可见宽度(以字符为单位)。[来源-w3schools]
注意cols和 rows 属性 (...) 指定了多少列高和多少行宽来构成文本区域。这些值以字符为单位 。[来源 - w3]
但是,如果我尝试为两个元素分配相同的值,它们最终会具有不同的宽度。输入字段有点太小,无法容纳给定数量的字符和文本区域 - 太宽。最重要的是,两者都有不同的宽度。
例如:
<input type="text" size=40>
<textarea cols="40"></textarea>
产生:
见这里 - http://jsfiddle.net/yjERR/
我在 Chrome 29 和 Firefox 24 中都试过了。
我知道宽度取决于字体样式,但是两个元素不应该仍然具有相同的宽度吗?是内部元素边距还是其他原因导致了这种差异?
更新
似乎这两个元素具有不同的字体样式,但是分配相同的 font-family 和 font-size 仍然会产生不同的宽度: