如果有多個css規則作用於同乙個元素上,那麼特指度最高的宣告將勝出
特指度值的計算方法
選擇符的每個id屬性值 0,1,0,0
選擇符的每個類屬性值,屬性選擇 或偽類加 0,0,1,0
選擇符中的每個元素和偽元素加 0,0,0,1
鏈結符和通用選擇符不增加特指度
下面將列舉一些例子
h1
// 0 , 0 , 0 , 1
body h1
// 0 , 0, 0 , 2
上面第二個特指度更大,所以h1為綠色
li #answer
//0 1 0 1
html > body li
// 0 0 0 3
樣式規則採用第乙個
一些注意:
使用者**會將多個樣式規則分開,在任何情況下, 使用者**都會確定哪些規則與元素匹配,然後找出所有相關的宣告,計算各自的特指度,判斷哪些規則勝出,再把勝出的規則應用到元素上,得到裝飾後的結果。使用者**可以自動處理一切
另,行內樣式的特指度是最高的, 1,0,0,0
以及重要!important 始終比任何非重要的都優先,重要的宣告作為乙個整體,其中的衝突使用特指度解決
繼承是無特指度,零特指度會戰勝無特指度,通用選擇符是零,所以可以戰勝繼承
如果兩個規則的特指度值相等,那麼該選擇哪乙個呢
權重和**排序
!import 優先順序最高
行內優先順序稍低,
如果兩者都有!import,行內樣式優先順序最高
如果顯示權重相同,那麼就要考慮規則的**
權重從高到低
1.讀者提供的樣式以!important標記的宣告
2.創作人員編寫的樣式中以!important標記的宣告
3.創作人員編寫的常規宣告
4.讀者提供的常規說明
5.使用者**的預設宣告
如果宣告的所有都相同,那麼則特指度值越大越優先,如果仍然相同,後面的樣式覆蓋前面的樣式
CSS 繼承 層疊 特指
1 為什麼要存在這三種機制 繼承 層疊 特指 在乙個較大的樣式表中,可能會有很多條規則都選擇同乙個元素的統一個屬性,但是每個屬性只能按照一種規則來進行顯示,當多種規則應用於同一屬性時,該屬性到底是選擇何種規則呢?為了解決這種衝突,需要確定乙個規則的 優先順序 所以,css提供了這三種機制 2 繼承 ...
css樣式優先順序 特指度
important 優先順序最高 label hover 內聯樣式,即通過元素的style進行設定 id 選擇器,如 id 類選擇器,如 class 屬性選擇器,如 a href segmentfault.com 偽類選擇器,如 hover 偽元素選擇器,如 before 標籤選擇器,如 span ...
Z index 層疊上下文和層疊水平
層疊上下文是乙個概念上的東西,學過編譯原理的人應該對這裡的上下文很清楚,而層疊不過就是乙個詞罷了,解釋一下就是,根據層疊規則決定位置的乙個環境。還需要注意的一點是,具有層疊上下文的元素比普通元素要更靠近眼睛。層疊水平也是乙個概念上的東西,用大白話說就是 在乙個層疊上下文的環境下,裡面的元素在z軸上的...