CSS權(quán)限優(yōu)先級(jí)的計(jì)算

當(dāng)一個(gè)前端項(xiàng)目超過3年,開發(fā)人員換過一波之后,你會(huì)發(fā)現(xiàn)維護(hù)前輩留下的代碼很是頭疼,比如:樣式,在層層追加的下面,恨不得用3個(gè)important來強(qiáng)調(diào),然而沒有用。那么下面對(duì)css 樣式權(quán)重的說明:

1、優(yōu)先級(jí)分為6大類

從高到低:
1:無條件優(yōu)先的屬性:!important。會(huì)覆蓋頁面內(nèi)任何位置定義的元素樣式。(慎重使用)
2:標(biāo)簽上直接添加內(nèi)聯(lián)樣式(style):<div style={width:'100px'}></div>。(少用,不方便統(tǒng)一管理)
3:標(biāo)簽上有id,并且用id設(shè)置樣式:#id{margin:'2px'}會(huì)覆蓋className{margin:'4px'}
4:直接用標(biāo)簽名稱設(shè)置樣式:span{fontSize:'12px'}會(huì)被className{fontSize:'14px'}覆蓋
5:標(biāo)簽名稱(直接用選擇器定義):li{color:'#ddd'}會(huì)覆蓋通配選擇器*{color:'#000'}
6:通配選擇器
總結(jié):Important>style={}(行內(nèi)樣式)>#id(ID選擇器)>.class(類選擇器)>標(biāo)簽選擇器>通配選擇器
1:層疊性:多種css樣式的疊加,如果一個(gè)屬性通過兩個(gè)相同的選擇器設(shè)置到同一個(gè)元素上,那么這個(gè)時(shí)候一個(gè)屬性就會(huì)被另一個(gè)屬性層疊掉
實(shí)際開發(fā)過程中,經(jīng)常會(huì)出現(xiàn)兩個(gè)或者多個(gè)樣式設(shè)置在同一個(gè)屬性上 比如:

<div classname="widthStyle heightStyle">
   <ul classname="ul ulTwo">
    <li classname="li"> </li>
  </ul>
</div>

ulTwo的樣式會(huì)覆蓋ul的樣式
a:選擇器相同,則執(zhí)行層疊行
b:選擇器不同,就會(huì)出現(xiàn)優(yōu)先級(jí)的問題,就會(huì)涉及權(quán)重計(jì)算

2、權(quán)重計(jì)算方法:

1:權(quán)重計(jì)算公式:
!important:--------Infinity;
行內(nèi)樣式:-------- 1000;(1000,100,10,1代表的是位數(shù))
id: -------------------- 100;
class|屬性|偽類 --- 10;
標(biāo)簽|偽元素 -----------1;
通配符 ---------------- 0;

標(biāo)簽選擇 當(dāng)前位置
標(biāo)簽選擇 當(dāng)前位置
important 永遠(yuǎn)的第一位
行內(nèi)樣式 1,0,0,0
id 0,1,0,0
class,屬性,偽類 0,0,1,0
標(biāo)簽,偽元素 0,0,0,1
通配符 永遠(yuǎn)的0位
<div class="loading-wrap">
   <li class="li-name"></li>
</div>
<style>
  .loading-wrap{/*權(quán)重:0010*/
      width: 100%;
      color: #fff;
      .li-name{/*權(quán)重:0020*/
        color:#ddd
      }
      li{/*權(quán)重:0011*/
        color:#ccc!important;/*權(quán)重:最高級(jí)*/
      }
  }
</style>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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