CSS - 如果选择器区域组合,则占位符样式不适用

标签 css google-chrome vendor-prefix

为什么这在 Chrome 中有效:

.amsearch-input::-webkit-input-placeholder {
    color: red;
}
<input class="amsearch-input" placeholder="It works!" />

...但这不是:

.amsearch-input::-webkit-input-placeholder,
.amsearch-input::-moz-placeholder,
.amsearch-input::-ms-placeholder,
.amsearch-input::placeholder {
    color: red;
}
<input class="amsearch-input" placeholder="It fails! :(" />

最佳答案

这是尝试处理包含供应商前缀的选择器时的常见错误。

这里的问题是

If there is an invalid pseudo-element or pseudo-class within in a chain or group of selectors, the whole selector list is invalid.

来源:developer.mozilla.org/en-US/docs/Web/CSS/Webkit_Extensions

还有一篇关于 css-tricks 的文章,您可以阅读该文章以获取有关此内容的更多背景信息 One Invalid Pseudo Selector Equals an Entire Ignored Selector

要修复它并使您的代码更具可持续性,您需要像这样分隔规则:

.amsearch-input::-webkit-input-placeholder {
    color: red;
}
.amsearch-input::-moz-placeholder {
    color: red;
}
.amsearch-input::-ms-placeholder {
    color: red;
}
.amsearch-input::placeholder {
    color: red;
}

关于CSS - 如果选择器区域组合,则占位符样式不适用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75530043/

相关文章:

css - CSS -webkit-tap-highlight-color : transparent; have accessibility implications?

html - 使div填充剩余屏幕空间的高度

javascript - 如何在响应式设计中从 Facebook 页面插件中 Conceal "timeline"?

html - 在 Chrome 中工作,但不在 I.E 中工作和火狐。 CSS/样式/HTML/PHP

css - 在属性名称后使用浏览器前缀

jquery - 使用 jQuery 设置 "width: calc..."的所有供应商前缀版本?

jquery - 有特定的按钮隐藏div

javascript - 更改滚动条上的导航栏

javascript - 允许使用 Javascript 的 Flash 弹出窗口

google-chrome - 警告 : REMOTE HOST IDENTIFICATION HAS CHANGED! Chrome 安全外壳应用程序扩展