伪元素和伪类的概念和区别

news2025/7/9 0:09:17

目录

伪类

伪元素

 区别:

对于区别的解释:

伪类

这是菜鸟教程下方的一个笔记,看着多但是干货满满。

伪类选择元素基于的是当前元素处于的状态,或者说元素当前所具有的特性,而不是元素的id、class、属性等静态的标志由于状态是动态变化的所以一个元素达到一个特定状态时,它可能得到一个伪类的样式;当状态改变时,它又会失去这个样式。由此可以看出,它的功能和class有些类似,但它是基于文档之外的抽象,所以叫伪类。

个人解析:动态变化的???   比如使用:frist-child,当我们设定一个元素为红色时,同时我们又创建了一个新的节点,在该元素之前,那么红色将转移到新创建的节点身上,所以并不是固定的。相反使用id,class等直接绑定就是固定的,再比如:link,这个样式也是动态的,可能发生也可能不发生(如果点击了,或者悬浮了就是另外一种状态了)——其实针对的是某一个元素节点(具体哪一个可能状态变化也可能节点变化)


常见的伪类

属性描述
:active向被激活的元素添加样式
:focus向拥有键盘输入焦点的元素添加样式
:hover当鼠标悬浮在元素上方时,向元素添加样式
:link向被访问的链接添加样式
:visited向已被访问的链接添加样式
:first-child向元素的第一个子元素添加样式
:lang向带有指定lang属性的元素添加样式



伪元素

与伪类针对特殊状态的元素不同的是,伪元素是对 元素中的 特定内容 进行操作,它所操作的层次比伪类更深了一层,也因此它的动态性比伪类要低得多。实际上,设计伪元素的目的就是去选取诸如元素内容第一个字(母)、第一行,选取某些内容前面或后面这种普通的选择器无法完成的工作。它控制的内容实际上和元素是相同的,但是它本身只是基于元素的抽象,并不存在于文档中,所以叫伪元素。

个人解析:伪元素是对元素节点特定内容的操作,普通选择器是无法对元素内容操作的,这就是伪元素的特点,设计伪元素的目的就是去选取诸如元素内容第一个字(母)、第一行...

常见的伪元素:

属性描述
::after在元素之后插入内容
::before在元素之前插入内容
::first-letter选中该元素的首字符
::first-line选中该元素的首行
::selection选择用户选择的元素部分

 区别:

伪类伪元素
:: 或 :
没有创造新元素(抽象)创造了新元素(抽象)
主要针对的是元素节点主要针对的是元素的内容

对于区别的解释:

        举例:我们要实现如下功能

 使用伪类:

我们可以看到相对于不使用伪类,并不需要生成新的元素节点(抽象)

使用伪元素如何实现?

 但是如果不使用伪元素,如何实现?

 这里我来解释一下为什么要加span这种标签而不是直接给h4带类名,原因是因为,我们要模拟伪元素的状态,伪元素是针对元素内容的改变,如果我们想要内容的第一个或者第一个字改变颜色,直接加类名是无法实现的。

我们发现,如果想要实现和伪元素相同的效果,是需要增加节点元素的,实际上伪元素就抽象了增加了一个节点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/8999.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小程序获取不到用户头像和昵称返回微信用户问题解决,即小程序授权获取用户头像规则调整的最新解决方案

最近好多同学在学习石头哥小程序课程的时候,遇到了下面这样的问题,在小程序授权获取用户头像和昵称时,获取到的是下面这样的。 到底是什么原因导致的呢,去小程序官方文档一看,又是官方改规则了。 点进去一看&#x…

超详细!linux系统nlg-eval安装指南

前言:最近在做文本生成的任务,需要用到bleu等评价指标,看到其他研究工作中都在用nlg-eval这个github库,就想把它拿过来用,然而安装过程并不是一帆风顺的,谨以此篇博客记录之,为后来者提供一些经…

【菜菜的sklearn课堂笔记】逻辑回归与评分卡-重要参数penalty C

视频作者:菜菜TsaiTsai 链接:【技术干货】菜菜的机器学习sklearn【全85集】Python进阶_哔哩哔哩_bilibili 正则化是用来防止模型过拟合的过程,常用的有L1正则化和L2正则化两种选项。这个增加的范式,被称为“正则项”,也…

11个开源测试自动化框架,如何选?

以下为作者观点: 如果你正在考虑建立你自己的测试自动化框架,请再想一想。在大多数情况下,你最好可以考虑一个或多个可用的开源选项。 这是因为,一般来说,框架是一套可以跨团队使用的最佳实践、假设、通用工具和库。…

操作符详解(C语言)

算术操作符(运算符): - * / % 在算术运算符中, - * 跟我们数学中的运算是一样的 在这里主要说一下 / 跟 % 这两个操作符 1、/ (除法) 在除法运算中,若除号两边的操作数都为整型,则结果…

布隆过滤器(Bloom Filter)

[TOC](布隆过滤器(Bloom Filter)) (1)什么是布隆过滤器 (1)布隆过滤器的简单介绍 布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以…

Python中的print()

本专栏为学习B站杨淑娟老师视频所记,仅做个人笔记使用😋😋😋 👉杨淑娟老师视频课👈 Python 职位方向 一、chapter1 1.使用print函数进行简单的输出 a100 # 变量a,值为100 b50 # 变量b,值为50print(90) …

【Linux实验】软中断通信

实验目的: 1.了解什么是信号,熟练掌握signal(),wait(),exit(),kill()函数。 2.熟悉并掌握Linux系统…

Learning to Enhance Low-Light Image via Zero-Reference Deep Curve Estimation

学习目标: Learning to Enhance Low-Light Image via Zero-Reference Deep Curve Estimation(零参考深度曲线估计) 个人体会: 本文的特色就是使用了PA和CA,对不同通道和不同像素做不同处理,虽然本文的实现过程懂了,但是实现去雾…

缝纫机牙架的数控工艺工装设计与编程

目 录 绪 论 1 2.差动牙架的工艺设计 3 2.1 机械加工工艺规程概述 3 2.2.1 零件的技术条件 4 2.2.2 加工表面及其要求 5 2.2.3零件的材料 6 2.3毛坯的选择 6 2.3.1毛坯的种类 6 2.4 基准的选择 8 2.5 机械加工工艺路线的拟订 10 3 差动牙架的工装设计 17 3.1 夹具概述 17 3.2 …

牛客CM11 - 链表分割【环形链表雏形】

看来真的不能乱割呀~一、题目描述二、思路分析三、代码详解【保姆级教学】四、环形链表的疑难解惑五、整体代码展示六、总结与提炼一、题目描述 描述 现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前&am…

数据库-范式

目录 完全函数依赖部分函数依赖传递函数依赖码主属性非主属性第一范式(1NF)第二范式(2NF)第三范式(3NF)例题完全函数依赖 每一个属性都有用,缺一个都不能决定。 部分函数依赖 部分属性用不到,也可以决定 传递函数依赖

抽象类和(上)

大家好,又见面了,今天和大家浅谈一下抽象类 抽象类存在的意义就是被继承 抽象类 🐷1.抽象类的定义 🐱‍🚀2.抽象类的语法 💚3.抽象类的概念 🚀4.抽象类的作用 1.抽象类的概念 什么是 好…

[附源码]java毕业设计基于个性化的汽车购买推荐系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

如何在Ubuntu 22.04上安装Linux 内核 6.0?

内核是任何基于 Linux 的操作系统的核心部分,它充当计算机系统软件和硬件之间的桥梁,还提供用户和应用程序与计算机交互所需的接口。内核提供了许多功能,包括进程调度、资源分配、设备管理、中断处理、内存管理和进程。 在撰写本文时&#x…

轻松学会jQuery选择器的用法

文章目录⛳️ 选择器✨ 属性选择器✨ 包含选择器✨ 位置选择器✨ 过滤选择器✨ 反向选择器⛳️ 快速投票⛳️ 选择器 本篇重点讲解jQuery中丰富的选择器,以及他们的基本用法。CSS的选择器均可以用jQuery的$进行选择,部分浏览器对CSS3的选择器支持不全&am…

大道至简,凯里亚德酒店成为酒店投资圈万众瞩目的“新”星

作为近年酒店市场的热门领域,中端酒店行业的发展一直颇受关注。随之而来的就是中端酒店品牌的不断增加,以及中端商旅、度假型酒店规模的不断扩大,经行业资深人士分析,未来中端酒店将成为酒店市场的主力产品。鉴于市场的发展趋势&a…

Netty中的缓存Bytebuf

首先我们来明确一下Buffer(缓存) JavaNIO中的Buffer、Netty中的Buffer、Netty中的Bytebuf这是3个不同的类,但实现的内容和完成的功能几乎一致,最原始的是JavaNIO中的Buffer实现,最先进的是Netty中Bytebuf的实现&#x…

10 分钟, 带你彻底掌握 SQL 多表查询

1.前言 多表查询,也称为多表连接查询;作为关系型数据库最主要的查询方式,在日常工作中被广泛使用 常见的多表查询操作包含:子查询、内连接、左外连接、右外连接、完全连接、交叉连接 本篇文章将利用一个实例逐一介绍这些操作 …

【华为OD机试真题 python】 太阳能板最大面积【2022 Q4 | 100分】

■ 题目描述 给航天器一侧加装长方形或正方形的太阳能板(图中的红色斜线区域),需要先安装两个支柱(图中的黑色竖条),再在支柱的中间部分固定太阳能板。 但航天器不同位置的支柱长度不同,太阳能…