当前位置:网站首页>浅析伪类和伪元素
浅析伪类和伪元素
2022-07-31 05:20:00 【火兰】
伪类和伪元素是什么?
伪类和伪元素的区别,其实很简单,从字面上就可以理解。它们有一个共同的修饰词“伪”,那么“伪”是什么意思呢?就是假的呗。所以,伪类就是假的类,伪元素就是假的元素,这就是在字面上它们之间的区别。下面我们再从定义上感受一下。
伪类
- css2中给的定义 css伪类用于某些选择器添加特殊的效果
- css3中给的定义:伪类存在的意义是为了通过选择器,格式化DOM树以外的信息以及不能被常规CSS选择器获取到的信息。
伪类的功能有两种:
- 获取不存在与DOM树中的信息。比如<a>标签的:link、visited等,这些信息不存在与DOM树结构中,只能通过CSS选择器来获取;
- 获取不能被常规CSS选择器获取的信息。比如伪类:target,它的作用是匹配文档(页面)的URI中某个标志符的目标元素,
定义在链接上面的伪类
- link:用来定义链接未被访问的样式
- visited:用来定义链接已经被访问过的样式(默认状态下是跟踪了用户的行为)
定义用户行为的伪类(显示顺序hover-focus-active)
- hover:用来定义用户用鼠标划过对应的元素,但是未激活显示的样式
- focus:用来定义一个元素本身具备焦点(接受键盘、鼠标、form的输入等)之后,显示的样式
- active:用来定义用户按下鼠标后,但是并未离开时候的样式,通常是左侧的鼠标
伪元素
简单来说就是 ::before 和 ::after 为什么会有两个冒号呢?其实最初是一个的,随着它的广泛运用, 为了和伪类(link,visited,hover,active)区分开来,所以用两个冒号(::)。
- css2指出 伪元素用于某些选择器设置特殊效果
- 伪元素可以创建一些文档语言无法创建的虚拟元素。比如:文档语言没有一种机制可以描述元素内容的第一个字母或第一行,但伪元素可以做到(::first-letter、::first-line)。同时,伪元素还可以创建源文档不存在的内容,比如使用 ::before 或 ::after。
- 通过伪类元素添加样式,比如,颜色,背景,文本调整,字体大小调整等。
::before在之前,::after在之后,
比如:
.font01::before{
/* content一定要写,可以是空内容,因为content是来激活伪元素的。 */
content: "很高兴";
background: blue;
}
.font01::after{
content: "lucy!";
background: yellow;
}
<div class="font01">
认识你,
</div>
效果
①content一定要写,即使是空内容,因为content是用来激活伪元素的,
没有content伪元素就失效了。
②伪元素不会影响结构选择器(伪元素无法通过其它选择器选中)。
③伪元素不会被搜索引擎收录,不会影响网页的SEO。
最后总结一下伪类与伪元素的特性及其区别:
- 伪类本质上是为了弥补常规CSS选择器的不足,以便获取到更多信息;
- 伪元素本质上是创建了一个有内容的虚拟容器;
- CSS3中伪类和伪元素的语法不同;伪类用单冒号:表示;而伪元素用双冒号::表示。一个选择器可以同时使用多个伪类(但有的伪类会互斥);而一个选择器只能同时使用一个伪元素(未来的版本可能会支持多伪元素)。
- 可以同时使用多个伪类,而只能同时使用一个伪元素;
边栏推荐
猜你喜欢
随机推荐
shell脚本 -d 是目录文件,那么-e,-f等说明
LVM和磁盘配额
变更管理与 DevOps —— 二者同时进行吗?
青龙面板从零搭建教程
记一次QT 2D 画图 实现3D动态效果
滴滴被罚超80亿!收集并泄露1.07亿条乘客人脸识别信息
银河麒麟V10 sp1服务器安装英伟达显卡驱动
Oracle入门 12 - Linux 磁盘分区及LVM实战
Oracle入门 06 - Windows 服务器安装配置
MySQL表的增删改查(1)
群晖NAS配置阿里云盘同步
Unity Text一个简单的输入特效
ES6-数组
Wlan实验(ENSP)
Incredibuild 宣布支持 Yocto
Oracle入门 02 - IT软硬件平台及操作系统介绍
测试——用例篇
【博学谷学习记录】超强总结,用心分享 | 软件测试 测试基本概念、模型与用例
项目-log4j2排查问题
编辑时过滤当前节点及根据限制的层数过滤数据