San*_*ood 93
每个浏览器引擎都有不同的实现来控制placeholder
样式.使用以下内容:
input {
text-transform: uppercase;
}
::-webkit-input-placeholder { /* WebKit browsers */
text-transform: none;
}
:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
text-transform: none;
}
::-moz-placeholder { /* Mozilla Firefox 19+ */
text-transform: none;
}
:-ms-input-placeholder { /* Internet Explorer 10+ */
text-transform: none;
}
::placeholder { /* Recent browsers */
text-transform: none;
}
Run Code Online (Sandbox Code Playgroud)
毋庸置疑,这仅适用于可以处理占位符的浏览器.(IE9/10 +)
Yeh*_*rtz 11
我知道您说过使用 JavaScript 是最后的手段。但是,在这种情况下,它可能更有效、更简单(如果您不使用 JavaScript,则提交中发布的值将不会是大写),因此这可能会更好,并且不需要额外的 CSS:
\n<input oninput="this.value = this.value.toUpperCase()" placeholder="Enter Drivers License #" />
Run Code Online (Sandbox Code Playgroud)\r\n有些人抱怨编辑值时光标跳到末尾,所以这个稍微扩展的版本应该可以解决这个问题:
\n<input oninput="let p = this.selectionStart; this.value = this.value.toUpperCase();this.setSelectionRange(p, p);" />
Run Code Online (Sandbox Code Playgroud)\r\n