CSS中的特殊性、繼承、層疊,css特殊性

來源:互聯網
上載者:User

CSS中的特殊性、繼承、層疊,css特殊性
前言

  最近在看《CSS權威指南》,書中第三章“結構和層疊”對特殊性的解釋十分到位,今天就來整理下思路,記錄如下。

 

引入問題

  

  非常簡單的一個列表結構,那麼想對“第一個”字樣設定字型顏色,可能有兩種方法:

  

  那麼問題來了,究竟字型會變成什麼顏色?

 

CSS規則結構

  

  每條CSS規則的結構如上,請記住各自名稱,否則繼續前行會有不適感。

 

特殊性

  關於特殊性的概念和作用書中說的很詳細:

    對於每個規則,使用者代理程式(瀏覽器)會計算選取器的特殊性,並將這個特殊性附加到規則中的各個聲明。

    如果一個元素有兩個或多個衝突的屬性生命,那麼有最高特殊性的聲明就會勝出。

  整體來說分為兩部分:計算和比較。第一眼看到肯定不太理解,那麼先用起來,沒事兒的時候回來看看,豁然開朗。

 

特殊性的計算規則

  按照特殊性的介紹中所述,如何計算特殊性是非常重要的,下面是書中所給的計算規則:

    1. 內聯樣式: 1,0,0,0

    2. ID選取器: 0,1,0,0

    3. class選取器、屬性選取器、偽類別選取器: 0,0,1,0

    4. 元素選取器、虛擬元素選取器: 0,0,0,1

    5. 萬用字元選取器: 0,0,0,0

    6. 結合符、繼承: 沒有特殊性

    7. !important:按照有無該關鍵字分為兩組,各自計算

    註:四組數字之間沒有任何關係,不存在進位一說。  

  上面的規則涵蓋了所有可能出現的CSS選取器,可以根據這些計算出相關選取器的特殊性,瀏覽器會將特殊性賦值給聲明塊中的每一個聲明。

  

  相關例子數不勝數,就不數了,會計算即可。

 

特殊性的比較規則:層疊

  反觀特殊性的介紹,可知特殊性的計算是為了比較,進而決定勝出的樣式進行顯示,比較的規則稱為層疊,當然前提是聲明出現衝突的情況下。規則如下:

    1. 首先按照權重比較:

      讀者重要樣式>創作者重要樣式>創作者正常樣式>讀者正常樣式>瀏覽器預設樣式

    2. 前述條件不能比較時,按照特殊性比較:

      特殊性從左至右依次比較每組數字,如:1,0,0,1和0,2,0,0,會按照前者定義樣式顯示。

    3. 前述條件不能比較時,按照出現順序比較:

      後出現的會覆蓋先出現的。

  根據上面的規則,可以得出問題的答案:顏色會如下:

    

 

小結

  第一次整理部落格,收穫蠻大的,平時看書大都一概而過,這次真的學透了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.