CSS 选择器
一、常用选择器
-
元素选择器 p {}
-
id 选择器 #name {}
-
class 类选择器 .box {}
二、复合选择器
-
交集选择器 p.red {}
.box.red {}
选中同时符合多个条件的元素
注意:交集选择器中如果有元素选择器,而元素选择器必须在开头
-
选择器分组(并集选择器)h1, p, .box {}
同时选择多个选择器对应的元素
三、关系选择器
-
子选择器 .box > p {}
选中指定父元素的指定子元素(可以多个)
-
后代选择器 .box p {}
选中指定父元素的指定后代元素(可以多个)
-
兄弟选择器
- 属性选择器
-
p[属性名] {} 选择含有此属性的元素
-
p[属性名 = 属性值] {} 选择含有指定属性和属性值的元素
-
p[属性名 ^= 属性值] {} 选择属性值以指定值开头的元素
-
p[属性名 $= 属性值] {} 选择属性值以指定值结尾的元素
-
p[属性名 *= 属性值] {} 选择属性值中含有某值的元素
四、伪类选择器
伪类:不存在的类,特殊的类
五、伪元素选择器
伪元素:表示页面中一些特殊的并不真实的存在的元素(特殊的位置)
六、选择器权重
样式冲突:当我们通过不同的选择器,选中相同的元素,并且设置不同的样式,此时有冲突了
所以在样式冲突发生时,应用哪个样式就由选择器的权重(优先级)决定
选择器的权重:
-
内联样式 1,0,0,0
-
id选择器 0,1,0,0
-
类元素选择器(包括伪类) 0,0,1,0
-
元素选择器 0,0,0,1
-
通配选择器 0,0,0,0 * {}
-
继承选择器 没有优先级
比较优先级时,需要将所有的选择器的优先级进行相加计算,最后优先级越高,则越优先显示(分组选择器单独计算)
? 选择器的累加不会超过其最大的数量级,类选择器再高也不会超过id选择器
? 如果优先级计算后相同,此时则优先使用靠下的样式(代码顺序解释)
!important
? 可以在某一个样式后边加上 !important
,则此时该样式会取到最高的优先级,甚至超过内联样式
? 注意,在开发中这个要慎用!