CSS3 :not() 伪类允许在选择器中进行否定,排除与指定的模式。但是,其功能存在限制。
当前实现
如 CSS3 和 CSS 选择器级别 4 文档中所述,:not() 目前仅匹配直接后代。在提供的示例中:
div :not(p) { color: red; }
此选择器的目标是
。距离较远的后代元素,即使包含在
中也是如此。嵌套在
继承和样式
样式属性的继承会使 :not() 的行为进一步复杂化。在问题的示例中,
内的元素即使继承了其父级的红色文本颜色。本身与 :not() 选择器匹配。这是因为否定应用于满足指定条件的父元素
。未来增强
CSS 选择器级别 4 建议扩展: not() 包含完整的复杂选择器和组合器。这将允许更精细的过滤,启用选择器,例如:
p:not(div p) { color: red; }登录后复制建议
由于 :not() 的当前限制以及与继承的潜在混淆,通常建议避免使用它来过滤遥远的后代。考虑替代方法,例如使用直接选择器或对您希望排除的元素应用特定样式。一旦实现了对 :not() 中复杂选择器的支持,此功能可能会变得更加有用。
以上是CSS `:not()` 是否选择性地仅针对直系子代或远代子代?的详细内容。更多信息请关注PHP中文网其他相关文章!