Vitaminaq / interview-collection

前端面试合集
3 stars 0 forks source link

CSS 优先级算法如何计算? #6

Open Vitaminaq opened 2 years ago

Vitaminaq commented 2 years ago

css选择器:

id选择器(#myid)
类选择器(.myclass)
属性选择器(a[rel="external"])
伪类选择器(a:hover, li:nth-child)
标签选择器(div, h1,p)
相邻选择器(h1 + p)
子选择器(ul > li)
后代选择器(li a)
通配符选择器(*)

css样式权重表:

!important
内联样式(1000)
ID选择器(0100)
类选择器/属性选择器/伪类选择器(0010)
元素(标签)选择器/伪元素选择器(0001)
关系选择器(子,相邻)/通配符选择器(0000)
#id {  /* 权重 100 * 1 = 100 */
    color: red;
}
#id #id1 {  /* 权重 100 * 2 = 200 */
    color: red;
}
#id a {  /* 权重 100 * 1 + 1 = 101 */
    color: red;
}

#id .class #id1 {  /* 权重 100 * 2 + 10 = 210 */
    color: red;
}

权重相同,跟书写的先后顺序有关,只会覆盖前面书写的对应样式。