CSS 三大特性

CSS的三個特性是指層疊性、繼承性以及優(yōu)先級。

一、CSS層疊性

  • 說明

    層疊性是多種CSS樣式的疊加,是瀏覽器處理樣式?jīng)_突的方式。在HTML中對于同一個元素可以有多個CSS樣式存在,當有相同權(quán)重的樣式存在時,會根據(jù)這些樣式出現(xiàn)的先后順序來決定,處于最后面的CSS樣式將會覆蓋前面的CSS樣式。

  • 舉例

    下面代碼,出現(xiàn)一個div 標簽指定了相同樣式不同值的情況,這就是樣式?jīng)_突。

    div{
        color:red;
    }
    div{
        color:blue;
    }
    
  • 原則

    通常出現(xiàn)樣式?jīng)_突,會按CSS書寫的順序,以最后的樣式為準。

    1. 樣式不沖突,不會層疊。
    2. 樣式?jīng)_突,遵循就近原則。 長江后浪推前浪,后面樣式蓋前面。

二、CSS繼承性

  • 說明

    簡單的理解為—“子承父業(yè)“,是指子標簽會繼承父標簽的==某些==樣式,如文本顏色和字號。想要設(shè)置一個可繼承的屬性,只需將它應用于父元素即可。

  • 舉例

    <style>
        div{color:pink;font-size:20px;}
    </style>
    <div>
        <span>
            我是什么顏色的?
        </span>
    </div>
    
  • 注意

    1. 合理使用繼承可以簡化代碼,降低CSS樣式的復雜性。對于字體、字號、顏色、行距等==文本類屬性==具有繼承性,都可以在body中統(tǒng)一設(shè)置,然后影響文檔中所有文本。
    2. 但是,并不是所有的CSS屬性都可以繼承,如邊框、外邊距、內(nèi)邊距、背景、定位、元素高度等==與塊級元素相關(guān)的==屬性都不具有繼承性。

三、CSS優(yōu)先級

在復雜CSS樣式表,往往并不是相同樣式不同值的堆疊這么簡單,經(jīng)常出現(xiàn)兩個或多個不同樣式規(guī)則應用在同一元素上,這時到底采用哪個樣式呢?這就是典型的CSS優(yōu)先級問題。

處理優(yōu)先級問題,就是考慮樣式權(quán)重的高低。這里先給大家介紹一些特殊的情況:

  1. ==繼承樣式的權(quán)重為0。==也就是說,在嵌套結(jié)構(gòu)中,無論父元素樣式權(quán)重多大,子元素繼承時,應用在子元素上的權(quán)重都為0,即子元素定義的樣式會覆蓋所有繼承來的樣式。
  2. ==行內(nèi)樣式優(yōu)先。==應用style屬性的元素,其行內(nèi)樣式的權(quán)重非常高,可以理解為遠大于100??傊麚碛斜壬厦嫣岣叩倪x擇器都大的優(yōu)先級。
  3. 權(quán)重相同時,CSS遵循就近原則。也就是說靠近元素的樣式具有最大的優(yōu)先級,或者說排在最后的樣式優(yōu)先級最大。
  4. CSS定義了一個!important命令,該命令被賦予最大的優(yōu)先級。也就是說不管權(quán)重如何以及樣式位置的遠近,!important都具有最大優(yōu)先級。

CSS特殊性

  • 說明

    或稱非凡性,是需要用一套計算公式來去計算CSS的權(quán)重。CSS的權(quán)重是一個衡量CSS值優(yōu)先級的一個標準,規(guī)則如下:

    用一個四位的數(shù)字串(CSS2是三位)來表示,更像四個級別,值從左到右,左面的最大,一級大于一級,數(shù)位之間沒有進制,級別之間不可超越。

  • 權(quán)重比較

    選擇器的權(quán)重 0,0,0,0
    一個標簽(元素)選擇器權(quán)重 0,0,0,1
    一個類,偽類選擇器權(quán)重 0,0,1,0
    一個ID選擇器權(quán)重 0,1,0,0
    一個行內(nèi)樣式權(quán)重 1,0,0,0
    一個!important權(quán)重 我是王者我最大
  • 權(quán)重的疊加

    舉例 權(quán)重
    div ul li 0,0,0,3
    .nav ul li 0,0,1,2
    a:hover 0,0,1,1
    .nav a 0,0,1,1
    #nav p 0,1,0,1
  • 注意

    1. 繼承的權(quán)重為 0。
    2. 數(shù)值之間沒有進制計算,比如: 0,0,0,5 + 0,0,0,5 =0,0,0,10 而不是 0,0, 1, 0, 所以不會存在10個div等于一個類選擇器的狀況。
    3. 權(quán)重是用來計算優(yōu)先級的,層疊是來表現(xiàn)優(yōu)先級的。
  • 總結(jié)優(yōu)先級

    !important>行內(nèi)樣式> ID 選擇器>類(偽元素、偽類、屬性)選擇器>元素選擇器>通用選擇器

    1. 使用了 !important聲明的規(guī)則。
    2. 內(nèi)嵌在 HTML 元素的 style屬性里面的聲明。
    3. 使用了 ID 選擇器的規(guī)則。
    4. 使用了類選擇器、屬性選擇器、偽元素和偽類選擇器的規(guī)則。
    5. 使用了元素選擇器的規(guī)則。
    6. 使用了通配符的規(guī)則。
    7. 同一類選擇器則遵循就近原則。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容