-5
是否有例如这两个选择之间有什么区别,html和*有什么区别吗?
html {
font-family: 'Roboto', sans-serif;
font-size: 1em;
}
和
* {
font-family: 'Roboto', sans-serif;
font-size: 1em;
}
是否有例如这两个选择之间有什么区别,html和*有什么区别吗?
html {
font-family: 'Roboto', sans-serif;
font-size: 1em;
}
和
* {
font-family: 'Roboto', sans-serif;
font-size: 1em;
}
它们是完全不同的。尽管font-size
被应用于html
时被所有子女继承,但它会级联。但是当您使用*
,时,每个元素都会获得属性。对所有元素应用font-size
等属性的后果与仅对html
。例如,考虑这两个例子:
html {
font-size: 3em;
}
<h1>Test</h1>
这里,font-size
被施加到仅仅html
元件。由于h1
的用户代理样式表的默认大小为2em,因此h1
文本实际上是6em(2 x 3 = 6)。现在考虑使用*
:
* {
font-size: 3em;
}
<h1>Test</h1>
你会看到,这是多大。这是因为我们已应用font-size: 3em
至每个元素。因此,实际尺寸为3em(来自html
元素)x 3em(来自body
元素)x 3em(来自h1
元素,默认的用户代理样式表被覆盖)。这使得27em,比我们第一次指定的3em大很多,并且使用html { … }
的6em!有是在副作用方面html
和*
有很大差异,因为您使用的是font-size
和em
s。
记住:关键区别是html
选择html
元素,而*
选择每个单独的元素。由于*
适用于所有元素,因此使用em
会使文本指数地变大。
是的,差别很大。 '*'选择每个元素。例如,使用'border:1px纯红色'来尝试它。 – Ryan
'html'选择'html'元素。 '*'选择所有元素。 – Li357
@AndrewLi但是所有东西都在'html'之下,所以..不会将这些属性应用于所有东西吗? – Hackinet