当前位置:网站首页>浅析什么是伪类和伪元素?伪类和伪元素的区别解析
浅析什么是伪类和伪元素?伪类和伪元素的区别解析
2022-08-03 08:18:00 【火兰】
一、理解什么是伪类?什么是伪元素?
1、伪类种类


伪类作用对象是整个元素
a:link{color:#111}
a:hover{color:#222}
div:first-child{color:#333}
div:nth-child(3){color:#444}尽管这些条件不是基于DOM的,但结果每一个都是作用于一个完整的元素,比如整个链接,段落,div等等。
2、伪元素种类

伪元素作用于元素的一部分:一个段落的第一行或者第一个字母
p::first-line{color:#555}
p::first-letter{color:#666}
a::before{content : "hello world";}3、总结:
伪元素其实相当于伪造了一个元素,例如 before,first-letter 达到的效果就是伪造了一个元素,然后添加了其相应的效果而已;
而伪类没有伪造元素,例如 first-child 只是给子元素添加样式而已。
伪元素和伪类之所以这么容易混淆,是因为他们的效果类似而且写法相仿,但实际上 css3 为了区分两者,已经明确规定了伪类用一个冒号来表示,而伪元素则用两个冒号来表示。
但因为兼容性的问题,所以现在大部分还是统一的单冒号,但是抛开兼容性的问题,我们在书写时应该尽可能养成好习惯,区分两者。
二、伪类与伪元素的特性及其区别
1、伪类本质上是为了弥补常规CSS选择器的不足,以便获取到更多信息
2、伪元素本质上是创建了一个有内容的虚拟容器
3、CSS3中伪类和伪元素的语法不同
伪类 :link :hover 单冒号
伪元素 ::before ::after 双冒号
4、可以同时使用多个伪类,而只能同时使用一个伪元素
5、其中伪类和伪元素的根本区别在于:它们是否创造了新的元素,这个新创造的元素就叫 "伪无素"
6、伪元素/伪对象:不存在在DOM文档中,是虚拟的元素,是创建新元素。
这个新元素(伪元素)是某个元素的子元素,这个子元素虽然在逻辑上存在,但却并不实际存在于文档树中
7、伪类:存在dom文档中标签,在伪类时改变样式
8、因为伪类是类似于添加类所以可以是多个,而伪元素在一个选择器中只能出现一次,并且只能出现在末尾
边栏推荐
猜你喜欢

WPF 学习笔记《WPF样式基础》

LeetCode 每日一题——622. 设计循环队列

用diskpart的offline命令弹出顽固硬盘

dflow入门2——Slices
![[Kaggle combat] Prediction of the number of survivors of the Titanic (from zero to submission to Kaggle to model saving and restoration)](/img/2b/d2f565d9221da094a9ccc30f506dc8.png)
[Kaggle combat] Prediction of the number of survivors of the Titanic (from zero to submission to Kaggle to model saving and restoration)

Evaluate:huggingface评价指标模块入门详细介绍

sqlite 日期字段加一天

FusionAccess软件架构、FusionAccess必须配置的四个组件、桌面发放流程、虚拟机组类型、桌面组类型

《剑指Offer》刷题之打印从1到最大的n位数

The Transformer, BERT, GPT paper intensive reading notes
随机推荐
Redisson实现分布式锁
Nacos使用实践
Taro框架-微信小程序-内嵌h5页面
Unity关于编辑器扩展自定义标签,方便扩展Inspector
dflow入门4——recurse&reuse&conditional
Docker启动mysql
LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之二:编码实现
[Kaggle combat] Prediction of the number of survivors of the Titanic (from zero to submission to Kaggle to model saving and restoration)
ArcEngine (2) loading the map document
tolower函数
获取JDcookie的方法
BOM系列之localStorage
FusionAccess软件架构、FusionAccess必须配置的四个组件、桌面发放流程、虚拟机组类型、桌面组类型
手把手教你如何自制目标检测框架(从理论到实现)
ArcEngine(五)用ICommand接口实现放大缩小
进程信息
mysql服务器上的mysql这个实例中表的介绍
AI mid-stage sequence labeling task: three data set construction process records
uni-app 顶部选项卡吸附效果 demo(整理)
Evaluate:huggingface评价指标模块入门详细介绍