CSS伪类与伪元素的区别

CSS中的伪类(Pseudo-classes)和伪元素(Pseudo-elements)是两个不同的概念,它们的主要区别在于它们的作用和目标。

伪类(Pseudo-classes)

伪类用于选择处于特定状态的元素。这些状态并不是由HTML直接定义的,而是由CSS来定义的。伪类最常见的用途是改变用户与元素交互时的样式,例如鼠标悬停(:hover)、活动状态(:active)、已访问链接(:visited)等。

一些常见的伪类包括:

  • :hover:用户鼠标悬停在元素上时的样式。
  • :active:元素被用户激活(如鼠标点击但尚未释放)时的样式。
  • :visited:用户已访问的链接的样式。
  • :focus:元素获得焦点时的样式(如通过点击或Tab键)。
  • :first-child:last-child:nth-child():选择特定位置的子元素。
  • :checked:用于选择被选中的<input type="checkbox"><input type="radio">元素。

伪元素(Pseudo-elements)

伪元素用于选择元素的特定部分或创建元素的抽象部分。这些部分并不是实际的HTML元素,而是由CSS创建的虚拟元素。最常见的伪元素是::before::after,它们允许你在元素的内容之前或之后插入内容。

一些常见的伪元素包括:

  • ::before:在元素内容之前插入内容。
  • ::after:在元素内容之后插入内容。
  • ::first-line:选择文本块的第一行。
  • ::first-letter:选择文本块的首字母。

主要区别

  1. 用途:伪类用于选择元素的特定状态,而伪元素用于选择元素的特定部分或创建虚拟元素。
  2. 内容:伪类不添加新的内容到文档中,它们只是基于元素的当前状态改变样式。伪元素可以向文档中添加新的内容。
  3. 数量:伪类可以有多个元素匹配(例如,多个链接可以被:visited伪类选中),而伪元素通常只应用于一个元素(例如,一个元素只能有一个::before和一个::after)。
  4. 语法:在CSS3中,伪元素的双冒号(::)语法被引入以区分伪类和伪元素。虽然很多浏览器仍然接受单冒号(:)语法用于伪元素,但使用双冒号(::)是更规范的做法。

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

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

相关文章

【TypeScript】类型兼容(协变、逆变和双向协变)

跟着小满zs 学习 ts&#xff0c;原文&#xff1a;学习TypeScript进阶类型兼容_typescript进阶阶段类型兼容 小满-CSDN博客 类型兼容&#xff0c;就是用于确定一个类型是否能赋值给其他的类型。如果A要兼容B 那么A至少具有B相同的属性。 // 主类型 interface A {name: string,a…

边界内聚和耦合

内聚 功能内聚 功能内聚是软件工程中一个重要的概念&#xff0c;它描述了一个模块内部各个元素之间的紧密程度。一个具有高功能内聚的模块意味着其内部的各个组件都共同完成一个具体的、明确的功能&#xff0c;并且这些组件之间的联系不是偶然的&#xff0c;而是因为它们共同服…

快手爬票概述

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 无论是出差还是旅行&#xff0c;都无法离开交通工具的支持。现如今随着科技水平的提高&#xff0c;高铁与动车成为人们喜爱的交通工具。如果想要知道…

【C语言】联合(共用体)

目录 一、什么是联合体 二、联合类型的声明 三、联合变量的创建 四、联合的特点 五、联合体大小的计算 六、联合的应用&#xff08;判断大小端&#xff09; 七、联合体的优缺点 7.1 优点 7.2 缺点 一、什么是联合体 联合也是一种特殊的自定义类型。由多个不同类型的数…

SqlSugar 集成

1 关于 SqlSugar SqlSugar 是 .NET/C# 平台非常优秀的 ORM 框架&#xff0c;目前 Nuget 总下载突破 700K&#xff0c;Github 关注量也高达 3.2K&#xff0c;是目前当之无愧的国产优秀 ORM 框架之一。 SqlSugar 官方地址&#xff1a;果糖网 &#xff08; SqlSugar 官网 &#…

LVS三种负载均衡模式:NAT、Tunneling和DR的技术对比

1. LVS-NAT 模式的特性 IP使用&#xff1a;RS&#xff08;Real Server&#xff09;应使用私有地址&#xff0c;RS的网关必须指向DIP&#xff08;Director IP&#xff09;。网络范围&#xff1a;DIP和RIP必须在同一个网段内。数据包处理&#xff1a;请求和响应报文都需要经过Di…

Vue 3 组合式编程:革新前端开发的新时代

Vue.js作为一种流行的前端框架&#xff0c;因其简洁、灵活和高性能而深受开发者喜爱。随着前端开发需求的不断演变和复杂度的增加&#xff0c;Vue.js也在不断地进化和改进。Vue 3的推出标志着Vue.js进入了一个新的阶段&#xff0c;其中最重要的一个变化就是引入了组合式编程&am…

数据库开发——并发控制(第十一章)

文章目录 前言并发执行例题一、封锁二、封锁协议三、可串行调度四、总结 学习目标&#xff1a;重点为并发控制的基本概念及几个基本协议 前言 数据库管理系统必须提供并发控制机制&#xff0c;保证事务的隔离性和一致性 并发执行例题 一、封锁 排他锁称为写锁&#xff0c;共…

react-redux搭建及不同版本间的对比

一.经典版 1. 安装Redux和React Redux npm install redux react-redux 2. 创建action // actions/counterActions.js export const increment () > {return {type: INCREMENT}; };export const decrement () > {return {type: DECREMENT}; };export const add (amo…

atmega8 上传程序

使用icsp 烧写时先关闭串口程序&#xff0c;与串口uart连接相关的电路勿于电脑连接 接触不良 1.使用icsp 上传 1&#xff09;可以直接上传程序 如官方示例blink 或是 serial示例 2&#xff09;可以先烧录bootload 方便下次使用串口上传程序代码 A)使用专门的icsp 上传器上传…

关于二分法的理解(以JS为例)

算法介绍 基本概念 二分查找算法&#xff0c;又称折半查找算法&#xff0c;是一种在有序数组中查找特定元素的高效方法。它的核心思想是将数组分成两半&#xff0c;然后根据目标值与中间元素的比较结果来决定是继续在左半部分还是右半部分进行搜索。 工作原理 初始化&#…

【iOS】如何断点看系统方法在哪一个库

如何断点看系统方法在哪一个库 开源网站如何断点看系统方法在哪一个库1 下符号断点2 符号断点中输入 load &#xff0c;并且开启断点&#xff08;Enable&#xff09;。3 运行程序&#xff0c;触发断点&#xff0c;在堆栈信息中找到load方法&#xff0c;可以看到其在libobjc.A.d…

程序员的wsl2

坑 wsl无法打开 上班时打开wsl2提示 WSL 正在完成升级... Could not write value to key \SOFTWARE\Classes\Directory\shell\WSL. Verify that you have sufficient access to that key, or contact your support personnel. 原因未知&#xff0c;之前并没有更新过&#xff…

【AI+编程】工作日常场景随时可以AI编程,记一个问答SQL快速导出数据日常示例

今天有个场景&#xff0c;我们有个老项目&#xff0c;由于历史原因差不多1年多没使用了&#xff0c;恰巧客户紧急情况要使用。因为当时没有需求&#xff0c;所以V1.0上线后 就没做更新。 需求很简单&#xff1a;我们假定 项目问题表、客户表、问题答案表&#xff0c; 实时查询…

TCP协议报头详解

目录 前言 TCP特点 TCP报头 1.源端口和目的端口 2.序号 3.确认号 4.数据偏移 5.保留 6.控制位 ① 紧急URG&#xff08;URGent&#xff09; ② 确认ACK&#xff08;ACKnowledgment&#xff09; ③ 推送PSH&#xff08;PuSH&#xff09; ④复位RST&#xff08;ReSeT&…

tornado.httputil.HTTPFile

tornado.httputil.HTTPFile 在 Tornado web 框架中并不是直接提供的一个类或者对象。但是&#xff0c;当你提到与文件上传相关的功能时&#xff0c;通常我们是在谈论 Tornado 的 tornado.web.RequestHandler 类中处理文件上传的方法。 在 Tornado 中&#xff0c;文件上传通常是…

【React】《React 学习手册 (第2版) 》笔记-Chapter1-初识 React

一、初识 React 在 package.json 文件中提供具体的版本信息&#xff0c;以便安装各个包的正确版本。 官方文档&#xff1a;https://zh-hans.react.dev/ 建议安装 React 开发者工具&#xff0c;来辅助开发 React 项目。这些工具可通过扩展 Chrome 和 Firefox 中安装&#xff0…

Android获取CPU的使用率

Android获取CPU的使用率 1、参考博客2、使用读取/proc/stat方案2.1 读取/proc/stat权限2.2 CPU使用率获取代码 1、参考博客 android系统之获取CPU的使用率 安卓性能测试之cpu占用率统计方法总结 CPU使用率指标内核源码分析 Android获取CPU&#xff0c;内存&#xff0c;磁盘使用…

Hexo 搭建个人博客(ubuntu20.04)

1 安装 Nodejs 和 npm 首先登录NodeSource官网&#xff1a; Nodesource Node.js DEB 按照提示安装最新的 Node.js 及其配套版本的 npm。 &#xff08;1&#xff09;以 sudo 用户身份运行下面的命令&#xff0c;下载并执行 NodeSource 安装脚本&#xff1a; sudo curl -fsSL…

【牛客面试必刷TOP101】Day32.BM68 矩阵的最小路径和和BM69 把数字翻译成字符串

文章目录 前言一、BM68 矩阵的最小路径和题目描述题目解析二、BM69 把数字翻译成字符串题目描述题目解析总结 前言 一、BM68 矩阵的最小路径和 题目描述 描述&#xff1a; 给定两个字符串str1和str2&#xff0c;输出两个字符串的最长公共子序列。如果最长公共子序列为空&#x…