如果一個元素在多個地方定義了某個樣式屬性,最后哪個起作用呢?
例如:在body中定義了字體的大小,元素p的屬性style中定義了文字顏色,內(nèi)部樣式表和外部樣式表中也都定義了元素p的文字顏色,而且某段文字還用屬性id和類名都定義了文字顏色。這樣會導致復雜的樣式層疊關(guān)系,到底誰可以起作用呢?
如果一個元素被具有相同屬性名的多個樣式重復作用,也就是出現(xiàn)了樣式層疊,CSS需要通過這些樣式的選擇器的特殊性來進行選擇其中的一個樣式。選擇器越特殊優(yōu)先權(quán)越高,選擇器優(yōu)先權(quán)最高的樣式被選中。如果最高優(yōu)先權(quán)的有多個,則要看這些樣式中哪個樣式離這個元素最近,離得最近的被選中。
選擇器的特殊性可以根據(jù)下面的規(guī)則來確定:
(1)對于id選擇器,每個特殊性加0100;
(2)對于類選擇器,屬性選擇器,偽類選擇器,每個特殊性加0010;
(3)對于標簽選擇器和偽元素選擇器,每個特殊性加0001;
(4)每個元素只能定義一個行內(nèi)樣式,行內(nèi)樣式的特殊性為1000;
(5)對于結(jié)合符和通用選擇器,它對特殊性沒有貢獻,其特殊性為0000;
(6)對于繼承得來的選擇器沒有任何特殊性,其特殊性為0000;
(7)加上!important的樣式具有最高的優(yōu)先權(quán)。
優(yōu)先權(quán)比較:
0100 > 0020;
0021 > 0020;
特殊性計算例子
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com