淺談CSS中的繼承性,特殊性,層疊性和重要性

1. 繼承性
CSS的某些樣式是具有繼承性的,那么什么是繼承呢?繼承是一種規(guī)則,它允許樣式不僅應(yīng)用于某個特定 html 標(biāo)簽元素,而且應(yīng)用于其后代。比如下面代碼:如某種顏色應(yīng)用于 p 標(biāo)簽,這個顏色設(shè)置不僅應(yīng)用 p 標(biāo)簽,還應(yīng)用于 p 標(biāo)簽中的所有子元素文本,這里子元素為 span 標(biāo)簽。
- p{color:red;}
- <p>三年級時,我還是一個<span>膽小如鼠</span>的小男孩。</p>
- p{border:1px solid red;}
在上面例子中它代碼的作用只是給 p 標(biāo)簽設(shè)置了邊框?yàn)?像素、紅色、實(shí)心邊框線,而對于子元素 span 是沒用起到作用的。
2. 特殊性
有的時候我們?yōu)橥粋€元素設(shè)置了不同的 CSS 樣式代碼,那么元素會啟用哪一個 CSS 樣式呢?我們來看一下面的代碼:
- p{color:red;}
- .first{color:green;}
- <p class="first">三年級時,我還是一個<span>膽小如鼠</span>的小男孩。</p>
p 和 .first 都匹配到了 p 這個標(biāo)簽上,那么會顯示哪種顏色呢?green是正確的顏色,那么為什么呢?是因?yàn)闉g覽器是根據(jù)權(quán)值來判斷使用哪種 css 樣式的,權(quán)值高的就使用哪種 css 樣式。
下面是權(quán)值的規(guī)則:
標(biāo)簽的權(quán)值為1,類選擇符的權(quán)值為10,ID選擇符的權(quán)值最高為100。例如下面的代碼:
- p{color:red;} /*權(quán)值為1*/
- p span{color:green;} /*權(quán)值為1+1=2*/
- .warning{color:white;} /*權(quán)值為10*/
- p span.warning{color:purple;} /*權(quán)值為1+1+10=12*/
- #footer .note p{color:yellow;} /*權(quán)值為100+10+1=111*/
注意:還有一個權(quán)值比較特殊–繼承也有權(quán)值但很低,有的文獻(xiàn)提出它只有0.1,所以可以理解為繼承的權(quán)值最低。
3. 層疊性
我們來思考一個問題:如果在html文件中對于同一個元素可以有多個css樣式存在并且這多個css樣式具有相同權(quán)重值怎么辦?好,這一小節(jié)中的層疊幫你解決這個問題。
層疊就是在html文件中對于同一個元素可以有多個css樣式存在,當(dāng)有相同權(quán)重的樣式存在時,會根據(jù)這些css樣式的前后順序來決定,處于最后面的css樣式會被應(yīng)用。
如下面代碼:
- p{color:red;}
- p{color:green;}
最后 p 中的文本會設(shè)置為green,這個層疊很好理解,理解為后面的樣式會覆蓋前面的樣式。
所以前面的css樣式優(yōu)先級就不難理解了:
內(nèi)聯(lián)樣式表(標(biāo)簽內(nèi)部)> 嵌入樣式表(當(dāng)前文件中)> 外部樣式表(外部文件中)。
4. 重要性
我們在做網(wǎng)頁代碼的時,有些特殊的情況需要為某些樣式設(shè)置具有最高權(quán)值,怎么辦?這時候我們可以使用!important來解決。
如下代碼:
- p{color:red!important;}
- p{color:green;}
- <p class="first">三年級時,我還是一個<span>膽小如鼠</span>的小男孩。</p>
這時 p 段落中的文本會顯示的red紅色。
注意:!important要寫在分號的前面
這里注意當(dāng)網(wǎng)頁制作者不設(shè)置 css 樣式時,瀏覽器會按照自己的一套樣式來顯示網(wǎng)頁。并且用戶也可以在瀏覽器中設(shè)置自己習(xí)慣的樣式,比如有的用戶習(xí)慣把字號設(shè)置為大一些,使其查看網(wǎng)頁的文本更加清楚。這時注意樣式優(yōu)先級為:瀏覽器默認(rèn)的樣式 < 網(wǎng)頁制作者樣式 < 用戶自己設(shè)置的樣式,但記住 !important 優(yōu)先級樣式是個例外,權(quán)值高于用戶自己設(shè)置的樣式。
以上這篇淺談CSS中的繼承性,特殊性,層疊性和重要性就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
- 這篇文章主要介紹了css 權(quán)重值(層疊性)實(shí)例詳解 ,需要的朋友可以參考下2019-06-11
- 這篇文章主要介紹了CSS中理解層疊性及權(quán)重如何分配,CSS的三大特性,分別是層疊性、優(yōu)先性和繼承性,本文給大家詳細(xì)講解,對css層疊性權(quán)重相關(guān)知識感興趣的朋友跟隨小編一起2022-10-24