我可以在以下块之一中设置全局CSS属性:
* {
}
html {
}
body {
}
它们之间有什么区别?每个设置如何影响页面样式?
当我设置font-family
或color
时,我必须将其放置在哪里?
*
将选择所有元素。
html
将选择<html>
元素。
body
将选择<body>
元素。
有时它们做同样事情的原因是继承,这意味着你应用样式的元素的子元素也将获得相同的样式。(请参阅规范的"继承?"列,了解哪些属性执行此操作)。
如果继承适用,您应该选择body
或html
*
因为通常较慢,但在现代浏览器上不会有太大区别。
另外,不要过度使用其中任何一个。它们非常广泛,您不想撤消特定元素的样式。 h1.header {color: red;}
比
* {
color: red;
}
h2, h3, p, ul, ol {
color: black;
}
或
* {
color: red;
}
:not(h1) {
color: black;
}
h1.other-header {
color: black;
}