使用 CSS 更改 HTML 输入的占位符颜色
P粉068510991
P粉068510991 2023-08-27 11:17:26
0
2
481
<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>
P粉068510991
P粉068510991

全部回复(2)
P粉680087550

/* 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>

这将为所有inputtextarea占位符设置样式。

重要说明:不要对这些规则进行分组。相反,为每个选择器制定单独的规则(组中一个无效的选择器会使整个组无效)。

P粉765684602

实施

共有三种不同的实现:伪元素、伪类和无。

  • WebKit、Blink(Safari、Google Chrome、Opera 15+)和 Microsoft Edge 使用伪元素:::-webkit-input-placeholder[参考]
  • Mozilla Firefox 4 到 18 使用伪类::-moz-placeholder一个冒号)。 [参考]
  • Mozilla Firefox 19+ 使用伪元素:::-moz-placeholder,但旧的选择器仍将工作一段时间。 [参考]
  • Internet Explorer 10 和 11 使用伪类::-ms-input-placeholder[参考]
  • 2017 年 4 月:大多数现代浏览器支持简单的伪元素 ::placeholder [Ref]

Internet Explorer 9 及更低版本根本不支持 placeholder 属性,而 Opera 12 及更低版本不支持任何占位符的 CSS 选择器。

关于最佳实施方案的讨论仍在继续。请注意,伪元素的行为就像阴影中的真实元素一样DOMinput 上的 padding 将不会获得与伪元素相同的背景颜色。

CSS 选择器

用户代理需要忽略具有未知选择器的规则。请参阅选择器级别 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!">
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板