当前位置: 首页 > news >正文

CSS中的伪元素和伪类

一直被伪类和伪元素所迷惑,以为是同一个属性名称,根据CSS动画,索性开始研究a:hover:after,a.hover:after的用法。

伪元素

是HTML中并不存在的元素,用于将特殊的效果添加到某些选择器
在这里插入图片描述

对伪元素的描述

伪元素有两个冒号:开头,然后是伪元素的名称。
使用两个冒号:是为了区别伪类和伪元素,当然考虑到兼容性,CSS2中已经存在的伪元素仍然可以使用一个冒号的语法,但是CSS3中新增的伪元素必须使用两个冒号。
一个选择器,只能使用一个伪元素,并且伪元素必须处于选择器语句的最后
从定义中我们可以指导,伪元素源来在DOM结构中不存在的,伪元素创建了一个容器,这个容器不包含在DOM结构中,但是有内容,使用content来添加内容,可以对其进行样式的自定义,可以获取其中的内容,为了规范,我们在伪元素前面加两个冒号,比如::after,但是为了兼容性,仍然使用了一个冒号的形式
在这里插入图片描述
加入伪元素之后:
在这里插入图片描述
可以看到,:before里的内容添加在了相对.div1内容之前,同理,:after中的内容会出现在.div1 内容之后。当然如果对他们进行位置的设置,这种前后就只是一个说法上的区别了。
在我看来,:after和:before用处最大在于,减少html代码里的节点个数及内容。优化代码阅读。当我在特定区间加入某些内容时,只用CSS样式表中利用:after与:before来输入内容样式但更多的可以结合伪类:hover来设置动画样式。
如果我们利用伪元素进行动画样式,需要给父元素添加,需要给父元素添加样式{position:relative;},给:after或者:before添加{position:absolute;}
在这里插入图片描述

伪类

应用于一组HTML元素,用于向某些选择器添加特殊效果。

在这里插入图片描述

CSS3中的定义

伪类存在的意义是为了通过选择器找到那些不存在于DOM树中的信息以及不能被常规CSS选择器获取到的信息
伪类由一个冒号:开头,冒号后面是伪类的名称和包含在圆括号中的可选参数。
任何常规选择器可以在任何位置使用伪类,伪类的语法不区分大小写,一些伪类的作用会互斥,另外一些伪类可以被同一个元素使用。
并且,为了满足用户在操作DOM时产生的DOM结构改变,伪类也可以是动态的

伪类的作用是获取页面中不存在的信息,比如 标签中的:linked :visited,这些内容不存在页面当中,只能通过css选择器来获取。且一个元素可以同时设置多个伪类效果。

http://www.lryc.cn/news/34008.html

相关文章:

  • 逻辑优化基础-rewrite
  • 案例27-单表从9个更新语句调整为2个
  • Wordpress paid-memberships-pro plugins CVE-2023-23488未授权SQLi漏洞分析
  • 【JavaWeb篇】JSTL相关知识点总结
  • 【蓝桥杯刷题】坑爹的负进制转换
  • react+antdpro+ts实现企业级项目二:Strapi及认证登陆模块
  • Android ANR trace日志如何导出
  • Windows SSH 配置和SCP的使用
  • liunx 安装redsi和连接
  • 接口里面可以写实现方法吗【可以】 、接口可以多继承吗【可以】
  • 【YOLOv8/YOLOv7/YOLOv5/YOLOv4/Faster-rcnn系列算法改进NO.57】引入可形变卷积
  • 统计学习--三种常见的相关系数
  • 基于Django4.1.4的入门学习记录
  • C++ Butterworth N阶滤波器设计
  • UXP下不用任何框架创建自己的插件并试运行
  • mac修改国内源快速安装brew
  • Me-and-My-Girlfriend-1靶场通关
  • 2.6 棋盘覆盖
  • JMU软件20 大数据技术复习(只写了对比18提纲的变动部分)
  • MySQL底层存储B-Tree和B+Tree原理分析
  • 基于Vue+Vue-cli+webpack搭建渐进式高可维护性前端实战项目
  • 第十三章:Java反射机制
  • iLok USB不识别怎么办?
  • 【LeetCode与《代码随想录》】二叉树篇:做题笔记与总结-JavaScript版
  • 机器人运动|浅谈Time Elastic Band算法
  • 【Linux】网络基础(1)
  • 限流算法详解
  • Spark/Hive
  • HashMap底层的实现原理(JDK8)
  • 操作系统-整理