使用 CSS 更改 HTML 输入的占位符颜色
P粉068510991
2023-08-27 11:17:26
<p>Chrome v4 支持 <code>input[type=text]</code> 元素上的占位符属性(其他可能也这样做)。</p>
<p>但是,以下 CSS 不会对占位符的值执行任何操作:</p>
<p><br /></p>
<pre class="brush:css;toolbar:false;">input[placeholder], [placeholder], *[placeholder] {
color: red !important;
}</pre>
<pre class="brush:html;toolbar:false;"><input type="text" placeholder="Value"></pre>
<p><br /></p>
<p><code>值</code>仍将保留<code>grey</code>,而不是<code>red</code>。</p>
<p><strong>有办法改变占位符文本的颜色吗?</strong></p>
这将为所有
input
和textarea
占位符设置样式。重要说明:不要对这些规则进行分组。相反,为每个选择器制定单独的规则(组中一个无效的选择器会使整个组无效)。
实施
共有三种不同的实现:伪元素、伪类和无。
::-webkit-input-placeholder
。 [参考]:-moz-placeholder
(一个冒号)。 [参考]::-moz-placeholder
,但旧的选择器仍将工作一段时间。 [参考]:-ms-input-placeholder
。 [参考]::placeholder
[Ref]Internet Explorer 9 及更低版本根本不支持
placeholder
属性,而 Opera 12 及更低版本不支持任何占位符的 CSS 选择器。关于最佳实施方案的讨论仍在继续。请注意,伪元素的行为就像阴影中的真实元素一样DOM。
input
上的padding
将不会获得与伪元素相同的背景颜色。CSS 选择器
用户代理需要忽略具有未知选择器的规则。请参阅选择器级别 3:
因此我们需要为每个浏览器制定单独的规则。否则整个组将被所有浏览器忽略。