-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