在 CSS 中混合供应商特定的伪元素和类
在 CSS 中,我们经常使用供应商特定的伪元素和类来增强浏览器兼容性。然而,尽管共享相似的属性,但不可能将它们组合成一个规则集。
为什么不呢?
CSS2.1 规定选择器必须在用户代理应用声明块。在选择器中添加供应商名称前缀会导致某些浏览器无法识别字符。因此,用户代理必须放弃这些规则以保持有效性。
具体来说:
对样式的影响
例如,当设置占位符文本样式时,此限制迫使我们编写多个冗余规则,因为每个供应商都需要单独的规则前缀:
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; }
结论
理解这个限制可以让我们创建有效且一致的CSS样式。虽然供应商前缀有时对于浏览器兼容性是必要的,但由于浏览器特定的解析规则,将它们混合在单个规则集中仍然不可行。
以上是为什么我不能将供应商特定的伪元素和类组合到单个 CSS 规则中?的详细内容。更多信息请关注PHP中文网其他相关文章!