这是我参与「第四届青训营 」笔记创作活动的的第4天
选择器分类(接上篇)
伪类选择器
伪类:不存在的类,特殊的类
作用:用来描述一个元素的特殊状态,例如:第一个子元素,被点击的元素,鼠标移入的元素......
语法:伪类一般情况下都是以:开头
:first-child(第一个子元素):last-child(最后一个子元素):nth-child()选中第n个子元素-
- 直接写n,表示选中 1 2 3 ...
-
- 2n,表示选中2 4 6 8...
-
- 4n, 表示选中4 8 12 16...
-
- 2n+1,表示选中 1 3 5 7...
:first-of-type表示选中同种类型的第一个
a元素的伪类
:link用来表示没访问过的链接
:visited表示访问过的链接,由于隐私的原因,字体大小不能设置, 只能修改颜色
:hover用来表示鼠标移入的状态
:active用来表示鼠标点击的状态
伪元素选择器
伪元素:表示页面中特殊的并不存在的元素(特殊位置,如第一个字母等)
语法:以::开头
::first-letter表示第一个字母::first-line表示第一行::selection表示选中的内容::before表示元素的起始::after表示元素的最后before和after必须结合content属性使用
样式的继承
样式的继承,我们为一个元素设置的一个样式同时也会应用到他的后代元素,继承是发生在祖先后代之间的。注意:并不是所有的样式都会被继承,比如背景相关的,但是如果父元素背景是绿的,会透出来,所以显得子元素也是绿的背景色
选择器的权重
样式的冲突
当我们通过不同的选择器选中相同的元素,并且为相同的样式设置不同的值,此时就发生了样式冲突
发生样式冲突时,由选择器的优先级决定
选择器的优先级
- 内联样式(1000)
- id选择器 (0100)
- 类和伪类选择器(0010)
- 元素选择器 (0001)
- 通配选择器(0000)
- 继承的样式(没有优先级)
比较优先级时,需要将所有的选择器的优先级进行相加计算,最后越高,则优先级越高(分组选择器单独计算)。如果优先级相同,则优先使用靠下的样式
可以在某一个样式后面加上一个!important,则此时该样式会得到最高优先级