【发布时间】:2014-03-02 08:50:33
【问题描述】:
一个输入元素可以有一个“大小”属性,它决定了它的宽度可以容纳多少个字符,在某些输入类型的字符数是固定的情况下,这是一个很好的特性。例如电话号码、信用卡号码、客户 ID 号码等。在这种情况下,只需将“大小”属性放在输入字段中,而不是深入到样式表中并为每个字段定义宽度更方便。
但是,当放置 size 属性时,它不会考虑字母间距。如果我希望我的数字更加分散,它们会溢出输入宽度。考虑到字母间距和可能影响文本大小的其他因素,有什么方法可以指定输入字段的大小?
HTML:<input size="5" placeholder="#####"/>
CSS:input { letter-spacing: 1em }
看到这个JSFiddle 的输出。请注意,占位符文本会溢出输入字段。
【问题讨论】:
-
我认为将
letter-spacing用于input没有问题。没有关于真正应该发生什么的规范,但现代浏览器似乎在这里相当一致。 (它们在size属性的解释上有所不同,但这是另一回事。)请显示您使用的一些代码并解释结果有什么问题,以及在哪个浏览器上。您的意思是您也设置了width属性吗?那么这就是罪魁祸首。 -
@JukkaK.Korpela beautifulcoder 发布的 jsfiddle 准确显示了相关代码。在输入中使用字母间距没有问题,它的“大小”属性没有考虑字母间距。因此,如果您有一个
<input size="3">,它的长度将包含 3 个字符,字母间距为 0。至少在 Chrome 中这不是荣誉。 -
您应该在问题中包含 your 代码,而不是在问题中引用答案中提到的某些 URL。一个问题应该可以理解为独立的,无需阅读 cmets 或答案。
-
@JukkaK.Korpela 很公平,我已将代码包含在问题中以帮助理解问题。如果您仍然不清楚,请告诉我。
-
问题仍然没有说明这是 Chrome 特定(或 WebKit 特定?)的问题。例如在 Firefox 中没有可见的问题。