我可以在以下某个块中设置全局CSS属性:
* {
}
html {
}
body {
}
他们之间有什么区别?每个设置如何影响页面样式?
当我设置font-family
或color
时,我必须在哪里放置它?
答案 0 :(得分:13)
*
将选择所有元素。
html
将选择<html>
元素。
body
将选择<body>
元素。
有时他们做同样事情的原因是继承,这意味着你应用样式的元素的子元素也将获得相同的样式。 (请参阅spec的“继承?”列,其中属性执行此操作。)
如果适用继承,则应选择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;
}