定义和用法size属性指定的宽度 输入字段。
适用于
<input type="text">
和<input type="password">
,尺寸 attribute定义应该可见的字符数。对于 所有其他输入类型,size定义输入字段的宽度 像素。
如果这是真的,为什么我的字段<input type="text" size="2"/>
足够宽以显示5个CAPTIAL MMMMM?
答案 0 :(得分:35)
HTML4规范,HTML5规范,Sitepoint,Mozilla开发者网络和Microsoft的MSDN库中指定了相同的“错误”信息。所以这不仅仅是W3Schools的错。
无论如何,虽然规格说size属性应该是可见的字符数,但是大多数Web浏览器已经决定使用em单位的数量,这意味着大写字母M的宽度。
要精确指定宽度(以像素为单位)或您选择的任何单位,请使用CSS width属性。
要回答您更新的问题:它是CSS样式应用于文本框的默认字体大小的大写字母M的宽度,但文本框内文本的字体大小通常较小。
想要在框内设置一定数量的字符吗?你必须切换到固定宽度的字体。
答案 1 :(得分:9)
问题是size = x
属性不是以像素为单位...而是表示<input />
元素必须保持的近似大小{ {1}}字符。因此,例如,x
应显示一个可容纳2个字符的输入框。
不幸的是,这在字体之间有所不同(特别是可变宽度字体),因此你可能会发现将size属性设置为2实际上会渲染一个大小为5或类似的输入框。但是,如果使用等宽字体,<input size=2 />
应该呈现一个文本字段,该字段可以容纳2个字符......或至少接近。
但是,要以像素,ems等设置size=2
元素的宽度,请尝试使用<input>
CSS属性:
width
上面的示例将使输入宽度恰好为20像素宽,不包括边框和/或填充。
答案 2 :(得分:6)
你不能从字面上理解,因为那是不可能的。
元素的宽度基于size
属性和使用的字体大小,但它不会完全符合该字符数,因为这是不可能的。
所有字符的宽度都不相同,因此字符llll
很容易适合size="4"
的输入,但字符mmmm
不会。
此外,还添加了一些额外的空间,因此size="2"
的输入不会是size="1"
输入的两倍。
用作平均字符宽度的内容可能取决于浏览器。我在Firefox中测试过,我没有找到任何完全匹配的字符,但字符*
很好地匹配了平均宽度。
答案 3 :(得分:1)
答案是,除非使用固定宽度的字体,否则浏览器无法准确确定两个字符的宽度。我认为你的两个角色领域可能并排适合两个“m”。
就w3schools的正确性而言,以下内容来自W3C:
size = cdata [CN] 此属性告诉用户代理控件的初始宽度。除了type属性之外,宽度以像素给出 值“text”或“password”。在这种情况下,它的价值指的是 (整数)字符数。