伪元素和伪类虽然不是特别常用,但是,很好用,可以帮你省掉很多无用功,效果还好。下面我们来看一下CSS伪类和伪元素的一些介绍。
css伪类
css伪类用于向某些选择器添加特殊的效果。
:link
, :visited
, :hover
, :focus
, :active
, :first-child
, :lang
css3新增的伪类:
:last-child,
:only-child
, :first-of-type,
:last-of-type
, :only-of-type
, :nth-child(n)
, :nth-last-child(n)
, :nth-of-type(n)
, :nth-last-of-type(n)
, :root, :empty
, :target
, :enabled
, :disabled
, :checked
, :not(selector)
,
css伪元素
css伪元素用于向某些选择器设置特殊效果。
::first-letter
, ::first-line
, ::before
, ::after
css3新增的伪元素
::selection
css伪类和伪元素的区别:
1、为了避免大家混淆伪类和伪元素,css3中的标准规定伪类使用单冒号“:” ,伪元素使用双冒号“::”,但在此之前都使用的单冒号“:”,所以为了保证兼容伪元素两种使用方法都是可以的。
2、伪类可以叠加使用,而伪元素在一个选择器中只能出现一次,并且只能出现在末尾。
.box:first-child:hover { color: #000;} //使用伪类 .box:first-letter { color: #000;} //使用伪元素 .box:first-letter:hover { color: #000;} //错误写法
3、伪类与类优先级相同,伪元素与标签优先级相同。
顺便说一下优先级怎么判断,一般是 !important > 行内样式> ID选择器 > 类选择器 > 标签 > 通配符 > 继承 > 浏览器默认属性。
还有一个简单的计算方法,内联样式表的权值为 1000,ID 选择器的权值为 100,Class 类选择器的权值为 10,HTML 标签选择器的权值为 1,权值实际并不是按十进制计算的,用数字表示只是说明思想。
我们可以把选择器中规则对应做加法,比较权值大小,权值越大优先级越高,如果权值相同前面的样式会被后面的覆盖。