伪类是 W3C 制定的一套选择器的特殊状态,通过伪类您可以设置元素的动态状态,例如悬停(hover)、点击(active)以及文档中不能通过其它选择器选择的元素(这些元素没有 ID 或 class 属性),例如第一个子元素(first-child)或者最后一个子元素(last-child)。
伪类的名称不区分大小写,但需要以冒号
:
开头。另外,伪类需要与 CSS 中的选择器结合使用,语法格式如下:
selector:pseudo-class {
property: value;
其中 selector 为选择器名称,pseudo-class 为伪类的名称。
CSS 中提供了各种各样的伪类,如下表所示:
前面在介绍《
链接
》时我们已经简单介绍了 :link、:visited、:active 和 :hover 几个伪类的使用,这里不再重复介绍,下面我们再来介绍几个比较常用的伪类。
1、first-child
伪类 first-child 能够匹配指定父元素下的第一个子元素,例如
ul li:first-child
能够匹配
<ul>
元素下的第一个
<li>
元素,示例代码如下:
<!DOCTYPE html>
<style>
ul li:first-child { /*匹配<ul>下的第一个<li>标签*/
color: red;
</style>
</head>
<li>CSS定位</li>
<li>CSS元素堆叠</li>
<li>CSS浮动</li>
</body>
</html>
运行结果如下图所示:
图:first-child 伪类
<!DOCTYPE html>
<style>
ul li:last-child { /*匹配<ul>下的最后一个<li>标签*/
color: red;
</style>
</head>
<li>CSS定位</li>
<li>CSS元素堆叠</li>
<li>CSS浮动</li>
</body>
</html>
运行结果如下图所示:
图:last-child 伪类
3、nth-child
伪类 nth-child 是 CSS3 中新增的,它可以匹配指定元素下的第 n 个子元素,例如
<!DOCTYPE html>
<style>
ul li:nth-child(2) { /*匹配<ul>下的第二个<li>标签*/
color: red;
</style>
</head>
<li>CSS定位</li>
<li>CSS元素堆叠</li>
<li>CSS浮动</li>
</body>
</html>
运行结果如下图所示: