1. 程式人生 > >選擇器的優先順序和偽類的順序

選擇器的優先順序和偽類的順序

1.選擇器的優先順序

(1)樣式的繼承

像兒子可以繼承父親的財產一樣,在CSS中,祖先元素上的樣式也會別後代元素所繼承,利用繼承可以將一些基本的樣式設定給祖先元素,這樣所有的後代元素將會繼承這些樣式。繼承時對開發的一種簡化,通過繼承我們可以將元素共有的樣式統一設定給祖先元素,這樣就只需要設定一次,就給所有的元素設定了樣式。
注:但是並不是所有的樣式都會被子元素所繼承,比如:背景相關的、邊框相關的、定位相關的樣式都不會被子元素所繼承。具體情況參考文件。

(2)優先順序

當選擇不同的選擇器,選中同一個元素時並且設定相同的樣式時,這樣樣式之間就會產生衝突,最終到底採用哪個選擇器定義的樣式,由選擇器的優先順序(權重

)來決定,優先順序高的優先顯示。
優先順序的規則:

內聯樣式,優先順序1000
id選擇器,優先順序100
類和偽類,優先順序10
元素選擇器,優先順序1
通配選擇器,優先順序0
繼承的樣式沒有優先順序
當選擇器包含多種選擇器時,需要將多種選擇器的優先順序相加然後進行比較。但是注意,選擇器的優先順序計算不會超過他的最大數量級,如果選擇器的優先順序一樣,則使用靠後的樣式。
並集選擇器的優先順序時單獨計算。
可以在樣式的最後新增一個!important,則此時該樣式會獲得一個最高的一個優先順序,將會超過所有的樣式甚至超過內聯樣式,所以在開發中儘量避免使用。

2.偽類的順序

涉及到a的偽類一共四個:
:link
:visited
:hover
:active


這四個選擇器的優先順序是一樣的。