繼承
在 CSS 中,**繼承**控制當元素上沒有為屬性指定值時會發生什麼。
CSS 屬性可以分為兩種型別
請參閱任何 CSS 屬性定義,以檢視特定屬性預設情況下是否繼承(“Inherited: yes”)或不繼承(“Inherited: no”)。
繼承的屬性
非繼承的屬性
當元素上沒有為**非繼承屬性**指定值時,該元素將獲得該屬性的初始值(如屬性摘要中所指定)。
非繼承屬性的一個典型例子是border屬性。考慮以下樣式規則和標記
css
p {
border: medium solid;
}
html
<p>This paragraph has <em>emphasized text</em> in it.</p>
單詞“強調文字”將不會有另一個邊框(因為border-style的初始值為none)。
注意
inherit關鍵字允許作者明確指定繼承。它適用於繼承屬性和非繼承屬性。
可以使用all速記屬性來控制所有屬性的繼承,該屬性將其值應用於所有屬性。例如
css
p {
all: revert;
font-size: 200%;
font-weight: bold;
}
這將段落的font屬性的樣式恢復為使用者代理的預設樣式,除非存在使用者樣式表,在這種情況下,將使用該樣式表。然後它將字型大小加倍並應用font-weight值為"bold"。
覆蓋繼承,一個例子
使用我們之前帶有border的例子,如果我們使用inherit顯式設定繼承,我們將得到以下結果
css
p {
border: medium solid;
}
em {
border: inherit;
}
html
<p>This paragraph has <em>emphasized text</em> in it.</p>
我們可以在這裡看到單詞“強調文字”周圍的另一個邊框。