CSS 组合器是否为 CSS 选择器添加特异性?

Do CSS combinators add specificity to a CSS selector?

mdn article about CSS specificity 状态:

Universal selector (*), combinators (+, >, ~, ' ') and negation pseudo-class (:not()) have no effect on specificity. (The selectors declared inside :not() do, however.)

但是我的经验是组合器确实有效果,请看这个例子:

div > p {
  color: red;
}

p {
  color: green;
}
<div>
  <p>First Paragraph</p>
  <p>Second Paragraph</p>
</div>

所以上面的引用声称,CSS 组合子对特异性没有影响。如果那句话是正确的,那么它是什么意思,正如我的代码示例所示相反?

您的代码段中的问题是您在第一条规则中有两个选择器 (div > p),而在第二条规则中只有一个选择器 (p),因此第一条规则更具体, 所以这篇文章是正确的。

使用相同的 2 个选择器查看下面的代码片段,但第一个具有组合器 >,因为它们具有相同的特异性,后者将由于级联而适用。

div > p {
  color: red;
}

div p {
  color: green;
}
<div>
  <p>First Paragraph</p>
  <p>Second Paragraph</p>
</div>

您可以在下方查看 div pdiv > pp 的具体情况