maxlength(not max-length)属性指定输入字符串的最大长度,以字符为单位,更确切地说,以代码为单位。预计浏览器会通过拒绝接受更多字符来强制执行此操作。然而,这并不意味着作为一种安全措施,因为它可以被简单地覆盖。相反,它告诉用户在处理数据时不再接受任何字符。当您必须设置上限时,这是有用的。您的数据库只能存储固定数量的字符fpr一些信息,并且当长度有逻辑限制时(例如,如果数据是美国状态的双字母代码,则其逻辑上限为2 )。

因此,maxlength属性是逻辑的,并且即使在非可视化用户界面中也可以工作。它不是以任何方式影响输入字段的视觉外观。

相比之下,size属性仅用于视觉渲染。它表示字段的可见宽度,以“平均”字符表示。这个模糊的概念在规范上没有明确,浏览器实现它不一致。当使用等宽字体时,效果最好。此属性不会限制输入的字符数量,但会影响可用性:在字段中输入30个字符长的字符串很难输入,这样一来只能看到10个字符。字段的宽度也是用户的信号:它表示输入的预期最大宽度。

通常使用这两个属性,通常具有相同的值。例如,如果该字段是一个5位数的邮政编码,size = 5 maxlength = 5是适合的,特别是如果您还设置font-family:monospace,这样实际的宽度或多或少恰好是五位数。

但是,值可能不同。例如,当在邮政地址中要求一行时,您可以设置size = 30,因为这对于一行而言通常是足够的,但是maxlength = 80,如果这对应于您的数据库或数据处理设置的限制,并且没有特别的原因不能同样这么长的路线。

原则上,size属性可以替换为CSS,因为它只处理可视化渲染。但是,宽度通常最好以字符形式设置,并且CSS中的字符的平均宽度没有普遍支持的单位;新的ch单元接近,但不完全相同,旧的浏览器不支持。