“*”在 CSS 特异性中排在首位,为什么?

"*" is appearing top in CSS specificity, why?

我无法理解为什么我的 CSS 没有按照我理解的特异性规则的方式进行设计。根据我在网上的阅读(包括 this calculator),*(匹配所有内容)没有特异性,而元素(例如 h1h2 等)有是第四重要的,而 class 是第三重要的。但这不是我在 Chrome 调试器中看到的。

从外观上看,* 排在首位,其次是 h5,然后是另外两个 * 匹配,然后是 [=29 的匹配=] .orange* 不应该在其他一切之后吗? .orange 不应该战胜 h5 吗?这是怎么回事?

在您的示例中,* 是唯一实际 匹配 相关元素的选择器。

其他样式仅由其他元素的定义继承。这些其他元素与您的元素位于父上下文中。

根据您的屏幕截图,它必须 some-element 在这样的结构中:

<div class="row orange">
    <div class="col-xs-10">
        <h5 class="detail1">
            <some-element></some-element>

关于您的元素,继承的样式根本没有任何特异性。特异性是一个概念,适用于 CSS 选择器 ,而不是 CSS 属性 .