首頁  >  文章  >  web前端  >  關於CSS中權值、層疊與重要性(!important)的分析

關於CSS中權值、層疊與重要性(!important)的分析

不言
不言原創
2018-06-26 15:00:252402瀏覽

下面為大家帶來一篇淺談CSS 權值 層疊 重要性(!important)。內容還挺不錯的,現在就分享給大家,也給大家做個參考。

1、特殊性權值

有的時候我們為同一個元素設定了不同的CSS樣式程式碼,那麼元素就會啟用哪一個CSS樣式呢?我們來看一下面的程式碼:

p{color:red;}   
.first{color:green;}   
<p class="first">三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>

p和.first都符合到了p這個標籤上,那麼會顯示哪種顏色呢? green是正確的顏色,那為什麼呢?是因為瀏覽器是根據權值來判斷使用哪一種css樣式的,權值高的就用哪種css樣式。

以下是權值的規則:

標籤的權值為1,類別選擇符的權值為10,ID選擇符的權值最高為100 。 例如下面的程式碼:

p{color:red;} /*权值为1*/
p span{color:green;} /*权值为1+1=2*/
.warning{color:white;} /*权值为10*/
p span.warning{color:purple;} /*权值为1+1+10=12*/
#footer .note p{color:yellow;} /*权值为100+10+1=111*/

注意:還有一個權值比較特殊--繼承也有權值但很低,有的文獻提出它只有0.1,所以可以理解為繼承的權值最低。

2、層疊

#如果在html檔案中對於同一個元素可以有多個css樣式存在並且這多個css樣式具有相同權重值怎麼辦?好,這一小節的層疊幫你解決這個問題。

層疊就是在html檔案中對於同一個元素可以有多個css樣式存在,當有相同權重的樣式存在時,會根據這些css樣式的前後順序來決定,處於最後面的css樣式會被套用。

如下面程式碼:

p{color:red;}   
p{color:green;}   
<p class="first">三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>

最後 p 中的文字會設定為green,這個層疊很好理解,理解為後面的樣式會覆蓋前面的樣式。

所以前面的css樣式優先權就不難理解了:

#內嵌樣式表(標籤內部)> 嵌入樣式表(目前檔)> ; 外部樣式表(外部文件中)

3、重要性

我們在做網頁程式碼的時,有些特殊的情況需要為某些樣式設定具有最高權值,怎麼辦?這時候我們可以使用!important來解決。

如下程式碼:

p{color:red!important;}   
p{color:green;}   
<p class="first">三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>

這時 p 段落中的文字會顯示的red紅色。

注意:!important要寫在分號的前面

這裡注意當網頁製作者不設定css樣式時,瀏覽器會依照自己的一套樣式來顯示網頁。而使用者也可以在瀏覽器中設定自己習慣的樣式,例如有的使用者習慣把字號設定為大一些,使其查看網頁的文字更加清楚。這時注意樣式優先權為:瀏覽器預設的樣式< 網頁製作者樣式< 使用者自己設定的樣式,但記住!important優先權樣式是個例外,權值比使用者自己設定的樣式。

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

關於如何解決css3中calc在less編譯時被計算的辦法

關於CSS3中動畫屬性transform和transition以及animation屬性的區別分析

#

以上是關於CSS中權值、層疊與重要性(!important)的分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn