Chrome支持元素上的[占位符属性]input[type=text](其他可能也支持)。
input[type=text]
但是以下CSS内容对占位符的价值没有任何作用:
CSS
input[placeholder], [placeholder], *[placeholder] { color: red !important; } <input type="text" placeholder="Value">
Value仍将保留grey而不是red。
Value
grey
red
是否可以更改占位符文本的颜色?
有三种不同的实现:伪元素,伪类,什么也没有。
::-webkit-input-placeholder
:-moz-placeholder
::-moz-placeholder
:-ms-input-placeholder
::placeholder
Internet Explorer 9和更低版本完全不支持该placeholder属性,而Opera12和更低版本则不支持占位符的任何CSS选择器。
placeholder
关于最佳实现的讨论仍在进行中。请注意,伪元素在ShadowDOM中的作用类似于真实元素。一个padding上input不会得到相同的背景颜色与伪元素。
padding
input
用户代理必须忽略具有未知选择器的规则。
包含无效选择器的一组选择器无效。
因此,我们需要为每个浏览器使用单独的规则。否则,整个组将被所有浏览器忽略。
::-webkit-input-placeholder { /* WebKit, Blink, Edge */ color: #909; } :-moz-placeholder { /* Mozilla Firefox 4 to 18 */ color: #909; opacity: 1; } ::-moz-placeholder { /* Mozilla Firefox 19+ */ color: #909; opacity: 1; } :-ms-input-placeholder { /* Internet Explorer 10-11 */ color: #909; } ::-ms-input-placeholder { /* Microsoft Edge */ color: #909; } ::placeholder { /* Most modern browsers support this now. */ color: #909; } <input placeholder="Stack Snippets are awesome!">
opacity: 1
em
email
search
-webkit-appearance
-moz-appearance
[type="search"] { -moz-appearance: textfield; -webkit-appearance: textfield; appearance: textfield; }