CSS伪类和伪元素及CSS3新增伪类

1、伪类与伪元素

CSS伪类:用于向某些选择器添加特殊的效果。

伪类  作用
:hover  将样式添加到鼠标悬浮的元素
:active 将样式添加到被激活的元素
:focus  将样式添加到获得焦点的元素
:link   将样式添加到未被访问过的链接
:visited    将样式添加到被访问过的链接
:first-child    将样式添加到元素的第一个子元素
:lang   定义指定的元素中使用的语言

CSS伪元素:用于将特殊的效果添加到某些选择器。伪元素代表了某个元素的子元素,这个子元素虽然在逻辑上存在,但却并不实际存在于文档树中。

伪元素 作用
::first-letter  将样式添加到文本的首字母
::first-line    将样式添加到文本的首行
::before    在某元素之前插入某些内容
::after 在某元素之后插入某些内容

伪类的效果可以通过添加一个实际的类来达到,而伪元素的效果则需要通过添加一个实际的元素才能达到,这也是为什么他们一个称为伪类,一个称为伪元素的原因。

CSS3为了区分伪类和伪元素,已经明确规定了伪类用一个冒号来表示,而伪元素则用两个冒号来表示。但因为兼容性的问题,所以现在大部分还是统一的单冒号,但是抛开兼容性的问题,我们在书写时应该尽可能养成好习惯,区分两者。

单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素。伪元素由双冒号和伪元素名称组成。不过浏览器需要同时支持旧的已经存在的伪元素写法,比如:first-line、:first-letter、:before、:after等,而新的在CSS3中引入的伪元素则不允许再支持旧的单冒号的写法。

2、CSS3新增伪类

新增伪类    作用
p:first-of-type     选择属于其父元素的首个<p>元素的每个<p>元素。
p:last-of-type  选择属于其父元素的最后<p>元素的每个<p>元素。
p:only-of-type  选择属于其父元素唯一的<p>元素的每个<p>元素。
p:only-child    选择属于其父元素唯一的子元素的每个<p>元素。
p:nth-child(n)  选择属于其父元素的第n个子元素的每个<p>元素。
p:nth-last-child(n) 选择属于其父元素的倒数第n个子元素的每个<p>元素。
p:nth-of-type(n)    选择属于其父元素第n个<p>元素的每个<p>元素。
p:nth-last-of-type(n)   选择属于其父元素倒数第n个<p>元素的每个<p>元素。
p:last-child    选择属于其父元素最后一个子元素的每个<p>元素。
p:empty 选择没有子元素的每个<p>元素(包括文本节点)。
p:target    选择当前活动的<p>元素。
:not(p) 选择非<p>元素的每个元素。
:enabled    控制表单控件的可用状态。
:disabled   控制表单控件的禁用状态。
:checked    单选框或复选框被选中。

你可能感兴趣的:(css,前端)