在 CSS 中,可以placeholder
使用特定于供应商的伪类和伪元素的组合来设置输入中的文本样式(以获得最佳的跨浏览器覆盖率)。
这些都共享相同的基本属性(即:文本样式和颜色声明)。
然而,尽管我不可避免地想要应用相同的样式,而与浏览器供应商无关,但似乎不可能将它们组合成一个逗号分隔的选择器(就像你想要两个选择器共享的任何其他 CSS 片段一样相同的样式)。
例如,我倾向于使用以下四个选择器来定位占位符样式:
input:-moz-placeholder
input::-moz-placeholder
input:-ms-input-placeholder
input::-webkit-input-placeholder
(尽管为了更好地支持浏览器:-moz-placeholder
而弃用了::-moz-placeholder
这一点,但仅在 FireFox 19 发布时才发生,因此目前两者都需要更好的浏览器支持)。
令人沮丧的是,声明和赋予每个(相同的)样式会导致 CSS 中出现大量重复。
因此,为了确保占位符文本右对齐和斜体,我最终会得到:
input:-moz-placeholder{
font-style: italic;
text-align: right;
}
input::-moz-placeholder{
font-style: italic;
text-align: right;
}
input:-ms-input-placeholder{
font-style: italic;
text-align: right;
}
input::-webkit-input-placeholder{
font-style: italic;
text-align: right;
}
我真正想做的是将它们组合成一个逗号分隔的规则集,如下所示:
input:-moz-placeholder,
input::-moz-placeholder,
input:-ms-input-placeholder,
input::-webkit-input-placeholder{
font-style: italic;
text-align: right;
}
然而,尽管在相当多的场合尝试过这个,这似乎从来没有奏效。这让我担心 CSS 的某些基本部分我不理解。
任何人都可以解释为什么会这样吗?