为什么 CSS 供应商特定的伪元素/类无法组合
CSS 中的常见做法是使用供应商-特定的伪类和伪元素,以实现跨浏览器兼容性,以设置输入字段中占位符文本的样式。然而,由于 CSS 验证的限制,将这些特定于供应商的选择器组合到一个规则集中(就像使用常规 CSS 选择器一样)是不可能的。
CSS2.1 定义选择器以包含直到声明块的左大括号。如果用户代理遇到无法解析的选择器,它必须忽略选择器和相应的声明块。
在特定于供应商的前缀的上下文中,会出现此限制,因为浏览器通常无法理解来自其他供应商。当规则在伪类或伪元素选择器中包含特定于供应商的前缀时,浏览器可能无法识别它,从而删除整个规则。
例如,如果逗号分隔的规则集包括带有 :-moz-placeholder 伪类的选择器,不支持 Mozilla 特定前缀的浏览器(例如 Chrome 或 Safari)将忽略整个规则,因为它们无法解析该特定选择器。这使得组合方法无效。
需要注意的是,某些浏览器(例如 WebKit)可能部分偏离此规则,并允许在某些上下文中使用无法识别的伪元素。然而,组合特定于供应商的选择器在不同浏览器中仍然不一致,并可能导致不可预测的样式行为。
因此,为了避免此限制并确保一致的占位符样式,有必要继续对不同的不同供应商使用单独的特定于供应商的选择器浏览器。
以上是为什么我无法组合 CSS 供应商特定的伪元素/类?的详细内容。更多信息请关注PHP中文网其他相关文章!