P粉6800875502023-08-28 10:14:21
/* do not group these rules */ *::-webkit-input-placeholder { color: red; } *:-moz-placeholder { /* FF 4-18 */ color: red; opacity: 1; } *::-moz-placeholder { /* FF 19+ */ color: red; opacity: 1; } *:-ms-input-placeholder { /* IE 10+ */ color: red; } *::-ms-input-placeholder { /* Microsoft Edge */ color: red; } *::placeholder { /* modern browser */ color: red; }
<input placeholder="hello"/> <br /> <textarea placeholder="hello"></textarea>
这将为所有input
和textarea
占位符设置样式。
重要说明:不要对这些规则进行分组。相反,为每个选择器制定单独的规则(组中一个无效的选择器会使整个组无效)。
P粉7656846022023-08-28 09:38:19
共有三种不同的实现:伪元素、伪类和无。
::-webkit-input-placeholder
。 [参考]:-moz-placeholder
(一个冒号)。 [参考]::-moz-placeholder
,但旧的选择器仍将工作一段时间。 [参考] :-ms-input-placeholder
。 [参考] ::placeholder
[Ref]Internet Explorer 9 及更低版本根本不支持 placeholder
属性,而 Opera 12 及更低版本不支持任何占位符的 CSS 选择器。
关于最佳实施方案的讨论仍在继续。请注意,伪元素的行为就像阴影中的真实元素一样DOM。 input
上的 padding
将不会获得与伪元素相同的背景颜色。
用户代理需要忽略具有未知选择器的规则。请参阅选择器级别 3:
因此我们需要为每个浏览器制定单独的规则。否则整个组将被所有浏览器忽略。
::-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!">