这一次,彻底搞定伪类和伪元素的区别

简介: 很多人经常对CSS中的伪类和伪元素分不清楚,或者将这两者混为一谈,今天让我们来了解下这两者都有哪些区别。在CSS3之前是没有伪元素与伪类的区别的,直到CSS3才将这二者区分开来。
很多人经常对CSS中的伪类和伪元素分不清楚,或者将这两者混为一谈,今天让我们来了解下这两者都有哪些区别。在CSS3之前是没有伪元素与伪类的区别的,直到CSS3才将这二者区分开来。

为什么要引入伪类和伪元素?

CSS之所以要引入伪类和伪元素是为了格式化文档树之外的信息,也就是说,伪类和伪元素是用来修饰不在文档树的部分,比如第一句话中的第一个字母或列表中的第一个元素。

什么是伪类?

伪类表示的是被选择元素的某种状态,例如hover。

伪类的分类

状态性伪类

状态性伪类是根据元素当前的状态进行选择的,当元素进入某种状态时呈现一种样式,进入另一种状态时呈现另一种样式。

典型的状态性伪类有:

  • :link 应用与未被访问过的链接。
  • :hover 应用于鼠标悬停到的元素。
  • :active 应用于被激活的元素。
  • :visited 应用于被访问过的链接,与:link互斥。
  • :focus 应用于拥有键盘输入焦点的元素。

结构性伪类

CSS3新增选择器,利用DOM树进行元素过滤,通过文档结构的互相关系来匹配元素,能够减少class和id属性的定义,使得文档结构更加简洁。

典型的结构性伪类有下面的例子:

  • div:first-child 选择属于其父元素的第一个子元素的每个div元素。
  • div:last-child 选择属于其父元素最后一个子元素的每个div元素。
  • div:nth-child(n) 选择属于其父元素的第n个子元素的每个div元素。

什么是伪元素?

伪元素表示的是被选择元素的某个部分,这个部分看起来像一个独立的元素,例如::before和::after。

伪类和伪元素的区别

伪类是操作文档中已有的元素,而伪元素则是创建了一个不在文档树中的元素,并为其添加样式。
相关文章
|
监控 druid Java
Spring Boot 3 集成 Druid 连接池详解
在现代的Java应用中,使用一个高效可靠的数据源是至关重要的。Druid连接池作为一款强大的数据库连接池,提供了丰富的监控和管理功能,成为很多Java项目的首选。本文将详细介绍如何在Spring Boot 3项目中配置数据源,集成Druid连接池,以实现更高效的数据库连接管理。
10535 2
Spring Boot 3 集成 Druid 连接池详解
|
Java 数据库连接 数据库
【MyBatis】spring整合mybatis教程(详细易懂)
Spring提供了一种轻量级的容器和依赖注入的机制,可以简化应用程序的配置和管理。会初始化N个数据库链接对象,一般在10个,当需要用户请求操作数据库时候,那么就会直接在数据库连接池中获取链接,用完放回连接池中。我们的实体类创建属性的时候我写get、set等方法,过于麻烦,但是我们有一个lombok,可以节约掉这些。这里是自己本地路径的MySQL的jar包,是需要更改的,路径赋值后也需要再加上。把我们的生成的BookMapper里面的方法复制到我们新建的BookBiz里面。选中对应的项目,依次选中生成。
【MyBatis】spring整合mybatis教程(详细易懂)
|
JavaScript Java
EL表达式
这篇文章介绍了EL表达式的基本概念、语法、保留关键字、运算符及其优先级,并详细解释了如何在EL中访问数据、进行算术运算、判断对象是否为空、逻辑关系运算和条件运算。
EL表达式
|
前端开发 Java 数据库连接
Spring6(一):入门案例
Spring6(一):入门案例
219 0
|
前端开发 Java
Java高手都在用的秘籍:自定义异常,让错误信息说话!
Java高手都在用的秘籍:自定义异常,让错误信息说话!
1011 1
|
前端开发 JavaScript 应用服务中间件
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
本文是一篇详细的教程,介绍了如何在Linux系统上安装和配置nginx,以及如何将打包好的前端项目(如Vue或React)上传和部署到服务器上,包括了常见的错误处理方法。
3728 0
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
|
Web App开发 JavaScript 前端开发
如何在浏览器中安装使用Vue开发者工具?Vue开发者工具的安装使用?可直接提取插件安装使用
这篇文章介绍了如何在浏览器中安装和使用Vue开发者工具,提供了两种下载方式,包括直接下载编译好的插件和从GitHub上下载源代码后进行打包。文章还详细说明了在Chrome浏览器中加载插件的步骤,以及插件在Vue项目和非Vue项目中的不同表现。
如何在浏览器中安装使用Vue开发者工具?Vue开发者工具的安装使用?可直接提取插件安装使用
|
前端开发
Typora使用技巧1 —— 更改字体、大小、颜色、背景色,设置图片默认左对齐,修改图片保存路径
Typora使用技巧1 —— 更改字体、大小、颜色、背景色,设置图片默认左对齐,修改图片保存路径
2199 3
|
弹性计算 Linux 数据安全/隐私保护
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
39652 3
阿里云服务器ECS远程登录用户名密码查询方法
|
NoSQL Java Redis
5. 成功解决:Could not autowire. No beans of 'RedisConnectionFactory' type found.
今天建了一个新项目,使用 Spring Boot 整合 Redis 时,IDEA 被提醒“Could not autowire. No beans of 'RedisConnectionFactory' type found. ”错误,意思是不能自动装配“RedisConnectionFactory”。
4347 2