【伪类、动态伪类、伪元素详解并且配有代码和效果展示】

补充说明:
伪类

伪类(味蕾):伪类是选择器的一种,它用于选择处于特定状态的元素。
就好比你的舌头上的味蕾,也会挑选它喜欢的,那我们在这里把你喜欢的东西当作特定状态的元素。

  • 伪类的作用:用于解决无效的选择器列表,使用 :is() 或 :where() 伪类,它们接受一个可容错选择器列表。可容错选择器列表中的每个选择器都被单独解析。因此列表中任何无效的选择器会被忽略,而有效的选择器则会被有效使用。

应用场景:

  • 鼠标停留在某行字体上的时候,这行字体发生颜色的改变。
  • 为已访问和未访问链接设置不同的样式
  • 设置元素获得焦点时的样式

使用伪类的注意点

  • :hover必须放在:link和:visited后面才能完全生效
  • :active必须放在:hover后面才能完全生效
  • 建议的编写顺序是 :link、:visited、:hover、:active

伪类个别介绍:

  • a:link 未访问的链接
  • a:visited 已访问的链接
  • a:hover 鼠标挪动到链接上(重要)
  • a:active 激活的链接(鼠标在链接上长按住未松开)

言简意赅:就是原来的标签上面没有+冒号的时候,就是我们看到的样子,一旦+了冒号和对应的属性,就是伪类,然后我们对应官方文档的属性,去看这个伪类是什么意思,会产生什么效果。

<!DOCTYPE html>
<html>
<head>
<style>
/* unvisited link */
a:link {
  color: red;
}

/* visited link */
a:visited {
  color: green;
}

/* mouse over link */
a:hover {
  color: hotpink;
}

/* selected link */
a:active {
  color: blue;
}
</style>
</head>
<body>

<h1>CSS 链接</h1>
<p><b><a href="/index.html" target="_blank">这是一个链接</a></b></p>
<p><b>注释:</b>在 CSS 定义中,a:hover 必须位于 a:link 和 a:visited 之后才能生效。</p>
<p><b>注释:</b>在 CSS 定义中,a:active 必须位于 a:hover 之后才能生效。</p>

</body>
</html>

在这里插入图片描述
当鼠标悬停在上面之后:
在这里插入图片描述
伪类的更多内容见:
https://developer.mozilla.org/zh-CN/docs/Web/CSS/Pseudo-classes

动态伪类: a:link、a:visited、a:hover、a:active、:focus等等
选择获得焦点的 元素。
动态伪类的编写顺序: :link、:visited、:focus、:hover、:active

选择器例子例子描述
:activea:active选择活动的链接。
:checkedinput:checked选择每个被选中的 元素。
:disabledinput:disabled选择每个被禁用的 元素。
:emptyp:empty选择没有子元素的每个p标签元素。
:focusinput:focus选择获得焦点的 元素。
:hovera:hover选择鼠标悬停其上的链接。。
:linka:link选择所有未被访问的链接。
:validinput:valid选择所有具有有效值的 元素。
:visiteda:visited选择所有已访问的链接。

动态伪类举例

<body>  
  <a href="http://www.baidu.com">百度一下</a>
  <input type="text">
  <div>我是div元素</div>
</body>
<style>
    a:visited {
      color: pink;
    }

    /* a元素鼠标放到上面 */
    a:hover {
      color: blue;
    }

    /* 点击未松开鼠标 */
    a:active {
      color: purple;
    }

    /* 所有的状态下同样的样式 */
    a {
      color: burlywood;
    }*/

效果:
未点击时:
在这里插入图片描述

悬停效果:
在这里插入图片描述

按住鼠标未松开效果:
在这里插入图片描述

点击后效果:
在这里插入图片描述

伪元素:

  • 一般为了区分伪元素和伪类,伪元素会使用2个冒号,比如::after。
  • 所有 CSS 伪元素
选择器例子例子描述
::afterp::after在每个p元素之后插入内容。
::beforep::before在每个p元素之前插入内容。
::first-letterp::first-letter选择每个p元素的首字母。
::first-linep::first-line选择每个p元素的首行。
::selectionp::selection选择用户选择的元素部分。
  • 伪类元素的使用方法:
    例如:::first-line可以针对首行文本设置属性。
.box::first-line {
      font-size: 30px;
      color: orange;
    }
<div class="box">
    <span class="keyword">您可以使用 ::first-line 伪元素将特殊效果添加到文本的第一行。可爱猪可爱猪猪可爱猪猪可爱猪猪,可爱猪可爱猪猪可爱猪猪可爱猪猪,可爱猪可爱猪猪可爱猪猪可爱猪猪,可爱猪可爱猪猪可爱猪猪可爱猪猪,可爱猪可爱猪猪可爱猪猪可爱猪猪,可爱猪可爱猪猪可爱猪猪可爱猪猪,可爱猪可爱猪猪可爱猪猪可爱猪猪,可爱猪可爱猪猪可爱猪猪可爱猪猪,可爱猪可爱猪猪可爱猪猪可爱猪猪,可爱猪可爱猪猪可爱猪猪可爱猪猪,可爱猪可爱猪猪可爱猪猪可爱猪猪。
  </div>

效果如下
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值