CSS 優(yōu)先級是指當(dāng)多個 CSS 規(guī)則同時作用于同一個 HTML 元素時,瀏覽器按照一定的規(guī)則來決定使用哪個 CSS 規(guī)則。
優(yōu)先級由四個因素決定:
- !important
- 內(nèi)聯(lián)樣式(在 HTML 元素上直接使用 style 屬性)
- ID 選擇器
- 類選擇器、屬性選擇器、偽類選擇器
!important 是最高優(yōu)先級,即使后面有更高優(yōu)先級的規(guī)則也會被覆蓋。內(nèi)聯(lián)樣式的優(yōu)先級較高,但比 !important 低。
ID 選擇器的優(yōu)先級比一般的選擇器要高,但比內(nèi)聯(lián)樣式和 !important 要低。
類選擇器、屬性選擇器、偽類選擇器的優(yōu)先級相同,按照出現(xiàn)順序來確定優(yōu)先級。
如果兩個規(guī)則的優(yōu)先級相同,那么瀏覽器會使用后出現(xiàn)的規(guī)則。如果兩個規(guī)則具有相同的選擇器,但出現(xiàn)在不同的樣式表中,則瀏覽器將使用引入樣式表的順序來確定優(yōu)先級。
除了以上基本規(guī)則外,還有一些特殊情況需要注意:
- 繼承的屬性不會被子元素的規(guī)則覆蓋,但如果子元素使用內(nèi)聯(lián)樣式,子元素規(guī)則的優(yōu)先級會高于繼承的規(guī)則。
- 如果使用 @import 引入的樣式表出現(xiàn)在文檔頭部,那么它的優(yōu)先級會高于在文檔中出現(xiàn)的樣式規(guī)則。
/* 優(yōu)先級:類選擇器 >ID 選擇器 >內(nèi)聯(lián)樣式 >偽類選擇器 */ div.blog-post { color: blue; } #post-title { color: red; }標(biāo)題
正文/* 上面的樣式代碼,標(biāo)題的顏色是綠色的,正文的顏色是藍色的。 */
更多關(guān)于 CSS 優(yōu)先級的詳細信息,請查閱 MDN 文檔。