1. 繼承性
CSS的某些樣式是具有繼承性的,那麼什麼是繼承呢?繼承是一種規則,它允許樣式不僅應用於某個特定 html 標籤元素,而且應用於其後代。例如下面程式碼:如某種顏色應用於 p 標籤,這個顏色設定不僅應用 p 標籤,還應用於 p 標籤中的所有子元素文本,這裡子元素為 span 標籤。
p{color:red;} <p>三年级时,我还是一个<span>胆小如鼠</span>的小男孩。</p>
結果 p 中的文字與 span 中的文字都設定為了紅色。但注意有一些 css 樣式是不具有繼承性的。如border:1px solid red;
p{border:1px solid red;}
在上面範例中它程式碼的作用只是給p 標籤設定了邊框為1像素、紅色、實心邊框線,而對於子元素span 是沒用起到作用的。
2. 特殊性
有的時候我們為同一個元素設定了不同的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,所以可以理解為繼承的權值最低。
3. 層疊性
我們來思考一個問題:如果在html檔案中對於同一個元素可以有多個css樣式存在而這多個css樣式具有相同權重值怎麼辦?好,這一小節的層疊幫你解決這個問題。
層疊就是在html檔案中對於同一個元素可以有多個css樣式存在,當有相同權重的樣式存在時,會根據這些css樣式的前後順序來決定,處於最後面的css樣式會被應用。
如下面程式碼:
p{color:red;} p{color:green;}
最後 p 中的文字會被設定為green,這個層疊很好理解,理解為後面的樣式會覆蓋前面的樣式。
所以前面的css樣式優先權就不難理解了:
內嵌樣式表(標籤內部)> 嵌入樣式表(目前檔)> 外部樣式表(外部文件中)。
4. 重要性
我們在做網頁程式碼的時,有些特殊的情況需要為某些樣式設定具有最高權值,怎麼辦?這時候我們可以使用!important來解決。
如下程式碼:
p{color:red!important;} p{color:green;} <p class="first">三年级时,我还是一个<span>胆小如鼠</span>的小男孩。</p>
這時 p 段落中的文字會顯示的red紅色。
注意:!important要寫在分號的前面
這裡注意當網頁製作者不設定 css 樣式時,瀏覽器會依照自己的一套樣式來顯示網頁。而使用者也可以在瀏覽器中設定自己習慣的樣式,例如有的使用者習慣把字號設定為大一些,使其查看網頁的文字更加清楚。這時注意樣式優先權為:瀏覽器預設的樣式 < 網頁製作者樣式 < 使用者自己設定的樣式,但記住 !important 優先權樣式是個例外,權值高於使用者自己設定的樣式。
以上這篇淺談CSS中的繼承性,特殊性,層疊性和重要性就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持PHP中文網。
更多詳解CSS中的繼承性,特殊性,層疊性與重要性相關文章請關注PHP中文網!