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

3pvhb19x  于 2023-02-26  发布在  其他
关注(0)|答案(2)|浏览(161)
    • 此问题在此处已有答案**:

Why isn't it possible to combine vendor-specific pseudo-elements/classes into one rule set?(2个答案)
3天前关闭。
为什么这在Chrome中有效:

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

......但这并不:
一个二个一个一个

vecaoik1

vecaoik11#

这是在尝试处理包含供应商前缀的选择器时的常见错误。
这里的问题是
如果选择器链或选择器组中存在无效的伪元素或伪类,则整个选择器列表无效。
图片来源:www.example.comdeveloper.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;
}
wwodge7n

wwodge7n2#

因为::-moz-placeholder::-ms-placeholder不是chrome上的有效选择器,chrome停止应用此样式。

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

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

相关问题