CSS 伪类

CSS 伪类语法

CSS 伪类是一种 “选择器”,用于选择元素的特殊状态。CSS 伪类以单冒号(:)开头,它可以让我们选取元素的特定状态或特定位置,而不需要修改 HTML 结构。

在 CSS 中,伪类的语法结构如下:

语法:

selector:pseudo-class {
    ……
}

说明:

selector 是其他选择器,既可以是元素,也可以是 class 等。pseudo-class 是伪类选择器,用于指定元素的状态。

CSS 提供了一些常用的伪类,可以分为以下几类。

  • 链接伪类:专门用于选择超链接的不同状态。
  • 结构伪类:专门用于根据元素在 HTML 文档中的位置来选择元素。
  • 其他伪类:主要包括鼠标伪类、:not 伪类等。
CSS 伪类
链接伪类
:link 定义未访问链接的样式
:visited 定义已访问链接的样式
:hover 定义鼠标悬停在链接上的样式
:active 定义鼠标点击链接时的样式
结构伪类
:first-child 选择元素的第一个子元素
:last-child 选择元素的最后一个子元素
:nth-child(n) 选择元素的第 n 个子元素,n 可以是数字、关键字或公式
:nth-last-child(n) 选择元素的倒数第 n 个子元素,n 可以是数字、关键字或公式
:first-of-type 选择元素的第一个子元素(指定类型)
:last-of-type 选择元素的最后一个子元素(指定类型)
:nth-of-type(n) 选择元素的第 n 个子元素(指定类型)
:nth-last-of-type(n) 选择元素的倒数第 n 个子元素(指定类型)
其他伪类
:focus 选择具有焦点的元素
:hover 选择鼠标指针悬停在其上的元素
:active 选择被激活的元素(鼠标在元素上按下)
:not(selector) 选择不匹配指定选择器的元素

其中,对于超链接这 4 种伪类,它们的顺序是由严格要求的,否则可能会失效。小伙伴们可以记住这么一句口诀:“LoVe HAte(爱恨原则)”,也就是:

Link -> Visited -> Hover -> Active

提示: CSS 伪类与 CSS 伪元素 是两个完全不一样的东西,小伙伴们要严格对比理解一下。

CSS 伪类示例

接下来,我们通过几个简单的例子来讲解 CSS 伪类是如何使用的。

示例 1:CSS 使用链接伪类

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        a:link {
            color: red;
        }
        a:visited {
            color: green;
        }
        a:hover {
            color: blue;
        }
        a:active {
            color: orange;
        }
    </style>
</head>
<body>
    <a href="https://www.lvyenet.com">绿叶网 </a>
</body>
</html>

页面效果如下图所示。

CSS 使用链接伪类

分析:

在上面例子中,我们分别使用了 :link、:visited、:hover 和 :active 伪类,来定义超链接在不同状态下的样式。

  • 未访问的链接为红色(red)。
  • 已访问的链接为绿色(green)。
  • 鼠标悬停在链接上时,链接变为蓝色(blue)。
  • 鼠标点击链接的瞬间,链接变为橘色(orange)。

示例 2:CSS 使用结构伪类

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        p:first-child {
            color: red;
        }
        p:last-child {
            color: blue;
        }
        p:nth-child(2) {
            font-size: 20px;
        }
    </style>
</head>
<body>
    <div>
        <p>这是第1个段落。</p>
        <p>这是第2个段落。</p>
        <p>这是第3个段落。</p>
    </div>
</body>
</html>

页面效果如下图所示。

CSS 使用结构伪类

分析:

p:first-child 表示选取父元素中的第一个子元素(该元素类型为 p)。需要注意的是,该父元素指的是 p 的父元素(即 div)。然后 p:last-child 表示选取父元素中的最后一个子元素,而 p:nth-child(2) 表示选取父元素中的第 2 个子元素。

示例 3:CSS 使用 :not 伪类

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        div:not(.special) {
            color: red;
        }
    </style>
</head>
<body>
    <div class="special">绿叶网</div>
    <div>绿叶网</div>
    <div>绿叶网</div>
</body>
</html>

页面效果如下图所示。

CSS 使用 :not 伪类

分析:

div:not(.special) 表示选取除了 .special 之外的其他所有 div 元素。

上一篇: CSS 变量

下一篇: CSS 伪元素

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号