伪类元素
:hover 将样式添加到鼠标悬浮的元素
:active 将样式添加到被激活的元素
:focus 将样式添加到获得焦点的元素
:link 将样式添加到未被访问过的链接
:visited 将样式添加到被访问过的链接
:first-chlid 将样式添加到元素的第一个子元素
:lang 定义指定的元素中使用的语言
新增伪类元素
p:first-of-type 选择属于其父元素的首个
元素的每个
元素
p:last-of-type 选择属于其父元素的最后
元素的每个
元素
p:only-of-type 选择属于其父元素唯一的
元素的每个
元素
p:only-child 选择属于其父元素唯一的子元素的每个
元素
p:nth-child(n) 选择属于其父元素的第n个子元素的每个
元素
p:nth-last-child(n) 选择属于其父元素的倒数第n个子元素的每个
元素
p:nth-of-type(n) 选择属于其父元素第n个
元素的每个
元素
p:nth-last-of-type(n) 选择属于其父元素倒数第n个
元素的每个
元素
p:last-child 选择属于其父元素最后一个子元素的每个
元素
p:empty 选择没有子元素的每个
元素(包括文本节点)
p:target 选择当前活动的
元素
:not§ 选择非
元素的每个元素
:enabled 控制表单控件的可用状态
:disabled 控制表单控件的禁用状态
:checked 单选框或复选框被选中
伪元素
::first-letter 将样式添加到文本的首字母
::first-line 将样式添加到文本的首行
::before 在某元素之前插入某些内容
::after 在某元素之后插入某些内容
二者的区别
伪类的效果可以通过添加一个实际的类来达到,而伪元素的效果则需要通过添加一个实际的元素才能达到,这也是为什么他们一个称为伪类,一个称为伪元素的原因。
css3为了区分伪类和伪元素,已经明确规定伪类用一个冒号来表示,而伪元素需要2个冒号来表示。单因为兼容性的问题,所以大家还是统一的单冒号,但是抛开兼容性的问题,我们在书写的时候尽量分开两者,养成良好的习惯