设置全局 CSS 属性时,html、body 和 * 有什么区别



我可以在以下块之一中设置全局CSS属性:

* {
}
html {
}
body {
}

它们之间有什么区别?每个设置如何影响页面样式?

当我设置font-familycolor时,我必须将其放置在哪里?

*将选择所有元素。

html将选择<html>元素。

body将选择<body>元素。

有时它们做同样事情的原因是继承,这意味着你应用样式的元素的子元素也将获得相同的样式。(请参阅规范的"继承?"列,了解哪些属性执行此操作)。

如果继承适用,您应该选择bodyhtml *因为通常较慢,但在现代浏览器上不会有太大区别。

另外,不要过度使用其中任何一个。它们非常广泛,您不想撤消特定元素的样式。 h1.header {color: red;}

* {
    color: red;
}
h2, h3, p, ul, ol {
    color: black;
}

* {
    color: red;
}
:not(h1) {
    color: black;
}
h1.other-header {
    color: black;
}

最新更新