:not() 伪类

#css
#选择器

使用 :not() 伪类需要注意技巧,稍有不慎结果可能不符合预期。

场景:为内联代码 code 设置样式,但需排除其父元素是 pre.code-block 的情况。

错误
:not(pre), :not(.code-block) {
  > code {
    background-color: 'red';
  }
}
正确
:not(pre, .code-block) {
  > code {
    background-color: 'red';
  }
}

错误解读:这种写法实际会匹配 父元素不是 pre 的所有元素 或 父元素不是 .code-block 的所有元素,导致选择范围过大(逻辑上是"或"关系而非"且")。