我們把 css selector分做四類, 相對應有四個變數, 定義為 a, b, c, d.
a for style, b for id, c for pseudo-classes, d for pseudo-elements.
四個定義如下:
- 如果有設定值來自於 "style" 屬性設定 a為1, 由於這個規則並不沒有任何 CSS Selector的規則, 所以 a = 1, b = 0, c = 0 , d = 0.
- 如果 CSS Selector 有設定 ID 屬性, 則設定 b加一.
- 如果 CSS Selector 有設定 classes, 設定一個 c加一.
- 如果 CSS Selector 有設定 element names 設定一個 d加一.
* {background-color:grey;}
/* a=0 b=0 c=0 d=0 -> specificity = 0,0,0,0 */
li {color:blue;}
/* a=0 b=0 c=0 d=1 -> specificity = 0,0,0,1 */
li:first-line {background-color:yellow;}
/* a=0 b=0 c=0 d=2 -> specificity = 0,0,0,2 */
ul li {background-color:pink;}
/* a=0 b=0 c=0 d=2 -> specificity = 0,0,0,2 */
ul ol+li {}
/* a=0 b=0 c=0 d=3 -> specificity = 0,0,0,3 */
h1 + *[rel=up]{}
/* a=0 b=0 c=1 d=1 -> specificity = 0,0,1,1 */
ul ol li.red:first-line {background-color:red;}
/*a=0 b=0 c=1 d=4 -> specificity = 0,0,1,4 */
ul ol li.red {background-color:cyan;}
/* a=0 b=0 c=1 d=3 -> specificity = 0,0,1,3 */
li.red.level {background-color:lime;}
/* a=0 b=0 c=2 d=1 -> specificity = 0,0,2,1 */
#x34y {color:red;}
/* a=0 b=1 c=0 d=0 -> specificity = 0,1,0,0 */
Check out this Pen!
沒有留言:
張貼留言