CSS3選擇器的優(yōu)先級(jí)是指在樣式?jīng)_突的情況下,瀏覽器會(huì)根據(jù)優(yōu)先級(jí)來(lái)決定哪個(gè)樣式會(huì)被應(yīng)用于元素。選擇器的優(yōu)先級(jí)可以通過(guò)不同的組合來(lái)計(jì)算得到,計(jì)算規(guī)則如下:
- 每個(gè)選擇器都有一個(gè)優(yōu)先級(jí)值,初始值為0; - 對(duì)于每個(gè)ID選擇器,優(yōu)先級(jí)值加1; - 對(duì)于每個(gè)類(lèi)選擇器、屬性選擇器、偽類(lèi)選擇器,優(yōu)先級(jí)值加10; - 對(duì)于每個(gè)元素選擇器、偽元素選擇器,優(yōu)先級(jí)值加100; - 如果存在子選擇器,則將該選擇器的優(yōu)先級(jí)值累加到父選擇器的優(yōu)先級(jí)值中; - 對(duì)于相同優(yōu)先級(jí)的選擇器,后面的會(huì)覆蓋前面的。 舉個(gè)例子,假設(shè)有一段HTML代碼如下:
<div class="container"> <p id="my-para"></p> </div>
如果我們給這個(gè)p標(biāo)簽設(shè)置了以下樣式:
#my-para { color: blue; } .container p { color: red; } p { color: green; }
那么最終p標(biāo)簽的文字顏色將是紅色,因?yàn)?.container p 的優(yōu)先級(jí)值為 10 + 100 = 110,而 #my-para 和 p 的優(yōu)先級(jí)值都是 0 + 0 + 1 = 1。
因此,在寫(xiě)CSS樣式時(shí),我們應(yīng)該盡量避免出現(xiàn)過(guò)多的層級(jí)和選擇器,以免優(yōu)先級(jí)過(guò)高而無(wú)法覆蓋。同時(shí),特別注意使用ID選擇器和!important聲明,因?yàn)樗鼈兊膬?yōu)先級(jí)非常高,我們應(yīng)該避免過(guò)度依賴(lài)它們。
上一篇css3選擇器能多選嗎
下一篇css3郵票