【发布时间】:2026-01-24 03:50:02
【问题描述】:
我正在设置占位符文本的样式,并且需要使用多个供应商前缀选择器,以便它在不同的浏览器中工作。当我将它们中的每一个作为单独的代码块时,它就可以工作。但是,如果我使用逗号分隔的选择器列表,而不是为每个选择器重复相同的 CSS,它将无法正常工作。谁能解释一下?
这行得通:
input[type=text]::-webkit-input-placeholder {
color: green;
}
input[type=text]::-moz-placeholder {
color: green;
}
input[type=text]:-ms-input-placeholder {
color: green;
}
input[type=text]:-moz-placeholder {
color: green;
}
<input type="text" placeholder="Placeholder Text" />
但这不是:
input[type=text]::-webkit-input-placeholder,
input[type=text]::-moz-placeholder,
input[type=text]:-ms-input-placeholder,
input[type=text]:-moz-placeholder {
color: green;
}
<input type="text" placeholder="Placeholder Text" />
为什么?
【问题讨论】:
-
它不起作用是什么意思?解释...
-
@PraveenKumar 他是对的。这不起作用,因为不能识别第一个选择器为有效的浏览器将忽略其余部分。因此,供应商特定的选择器必须单独声明。
标签: css cross-browser vendor-prefix