7

下面的 size 属性没有任何作用。为什么?

<input type="text" size="80" placeholder="blablabla bla lba bla bla bla blabla bla bla bla lba">

它默认为 60 个字符,我似乎无法改变它。

4

5 回答 5

3

大概你有一些影响它的样式。没有任何样式规则,它工作得很好。但是,当您应用较小尺寸的样式规则时,它优先

要找出影响它的样式规则,请右键单击它并选择“检查元素”,然后查看右侧显示的样式信息。

于 2012-04-07T23:22:38.727 回答
1

使用textarea元素而不是input元素:

<textarea cols="80" rows="1" style="overflow: visible" placeholder=
"blablabla bla lba bla bla bla blabla bla bla bla lba"></textarea>

这会产生更一致但不完全一致的渲染。该设置overflow: visible是为了让 IE 为 80 个字符保留空间,否则由于垂直滚动条,只能容纳 79 个字符。

为什么会出现问题input

该属性size="80"将字段的可见宽度设置为 80 个字符的“平均”宽度。这没有完全定义(什么是“平均”?),浏览器甚至不合逻辑地实现它:使用size="80"往往给出的宽度比 20 个字符的默认宽度的 4 倍要小得多。所以浏览器甚至不一致。比例取决于字体和浏览器。(这也发生在其他浏览器上。)

如果您需要继续使用input

您可以使用style="width: 80ch",但并非所有浏览器都支持此 CSS3 功能,并且不能保证它已正确实现。根据ch定义,单位是数字零的前进宽度,'0',在大多数字体中与一般数字的前进宽度相同。(例如,Firefox 几乎正确地实现了这一点。几乎,但不完全。)

您可以将<input>元素中的字体设置为某些等宽字体。这不会消除问题,但会使宽度更接近指定的宽度。

于 2012-04-08T04:48:44.713 回答
0

如果您想知道为什么可以输入60 个字符,那么决定多少个字符的属性称为maxlength

最长长度

如果 type 属性的值为 text、email、search、password、tel 或 url,则该属性指定用户可以输入的最大字符数(以 Unicode 码位表示);对于其他控件类型,它被忽略。它可以超过 size 属性的值。如果未指定,用户可以输入不限数量的字符。指定负数会导致默认行为;也就是说,用户可以输入无限数量的字符。仅当属性的值已更改时才评估约束。

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input

大小仅决定字符的宽度,而不是用户可以输入的数量。

于 2014-11-21T16:28:48.903 回答
0

从 Mac OS Lion 上的 Google Chrome 26 开始,不支持“ch”单元。

在使用内联样式“宽度:16ch”检查元素时,该样式被标记为“无效属性值”。其他常用单位(pt、px、em、%)也可以接受。

于 2013-04-12T22:31:07.853 回答
0

我遇到了同样的问题,在尝试了很多其他解决方案之后,我通过在输入字段中添加宽度来解决这个问题。

input {
    width:90px; /* Your width may vary */
}
于 2017-01-16T07:08:53.113 回答