css - 星号/ body 颜色的特异性/继承?

标签 css css-selectors css-specificity

我对下面的 css 有点困惑

* {
    color: yellow;
}
body {
    color: black;
}

和 HTML

    <div>
        <p> Test text... </p>

    </div>

body 下方的任何“p”都会变成黄色 - 但为什么呢?星号没有权重。

并且颜色是继承的,那么为什么我的“p”的颜色不从 body 中获取它的颜色?

相反,它使用星号中的颜色。

我的意思是,如果“body”和“p”(以及继承线中的任何内容)没有颜色,那么它应该使用星号。

有人可以帮忙吗?为什么上面是这样。

上面的 html block 是黄色的,但为什么它没有黑色(来自正文)?

最佳答案

I mean, if a "body" and "p" (and anything in the line of inheritance) doesn't have a background-color then it should use the asterisk.

星号是选择器的一部分,表示“任何元素”,而不是特殊规则,表示其中的属性在没有继承或指定值时作为默认值应用。

例如,另一种匹配body(还有head)的方法是:

html > * {
    …
}

因为 body一个元素 (*) 是 (>) 一个名为的元素的子元素“html”(html)。

因此,您的 body 规则将背景颜色应用于正文,而您的 * 规则将背景颜色应用于 p

(背景颜色也不是继承属性,但在这种情况下无关紧要。color 的行为相同。)

关于css - 星号/ body 颜色的特异性/继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59692299/

相关文章:

html - 如何以正确的方式使用 [attribute ="value"]?

css - 数据 URI 图像大小(自动高度)

html - 如何让 CSS 类优先于 id?

CSS 特异性和/或与祖先的继承

html - body 标签上的 id 相同,以提高 css 特异性

html - 我的样式忽略了我的 CSS,而是使用 'element style'

css - 如何从 Drupal 7 中的 H 标签中删除换行符?

javascript - 在 ajax 调用和 html 呈现之后 Angular 访问数据

css - 影响 :focus'd element (pure CSS+HTML preferred) 的父元素

javascript - 使用哪个 CSS 选择器?