1

我有一个 html 表单的输入字段

<input type="text" size="30">

我只想显示 30 char 所以我将大小设置为 30 。

但是文本字段的行为取决于输入的 char 作为输入,有时它显示的 char 少于 30 。有时它显示超过 30 。

例如 :

如果我输入 123456789012345678901234567890 它只会显示 28 个字符,即使它有 30 个字符

如果我只输入l一个字符,我可以输入近 50 个字符

这可能是什么原因我无法理解有没有人有想法?我想知道每个字符是否需要不同的空间以显示形式?

4

3 回答 3

2

字符的宽度(或者更准确地说,字形的高级宽度)通常变化很大,从窄的“i”到宽的“W”。该size属性将可见宽度设置为许多“平均”字符,一个模糊的概念(平均是什么?),由不同的浏览器解释不同。

只有某些字体的所有字符宽度相等。这种字体被称为“等宽字体”,它们通常难以阅读,可能会使文本看起来像是在打字机上写的,但它们仍然有其用途。要具有 30 个字符的宽度,请考虑在元素上设置类似font-family: Consolas, monospaceinput内容。

于 2013-08-02T13:40:56.167 回答
1

这种行为是因为您输入的不同字符的大小不同。有些尺寸较小,有些尺寸较大。如果它占用的空间较小,那么文本框将占用更多的字符。这是您遇到问题的唯一原因。(如果你使用 i 而不是 1 它也会占用超过 50 个字符。)

如果您的目标是恰好占用 30 个字符,请尝试使用属性“maxlength”,如下所示:

<input type="text" maxlength="30">
于 2013-08-02T11:16:19.980 回答
0

尝试

<input type="text" maxlength="30">

大小和最大长度差异的演示

于 2013-08-02T10:49:11.227 回答