美文网首页
伪元素与伪类的区别

伪元素与伪类的区别

作者: 雅雅的前端工作学习 | 来源:发表于2018-09-09 09:15 被阅读0次

CSS中伪类与伪元素的概念是很容易混淆的
今天就来谈谈伪类与伪元素之间的区别


定义

首先先来看看伪类与伪元素的定义
w3c中对于它们是这么解释的

  • 伪类:用于向某些选择器添加特殊的效果
  • 伪元素:用于将特殊的效果添加到某些选择器

CSS 引入伪类和伪元素的概念是为了实现基于文档树之外的信息的格式化

CSS3中的标准是伪类使用单冒号“:”
而伪元素使用双冒号“::”(避免混淆)
但是在此之前无论是伪类还是伪元素都使用单冒号“:”
所以为了保证兼容伪元素两种使用方法都是可以的
但是低版本IE有双冒号兼容问题
所以以前编写样式的人们对于伪类和伪元素就干脆统统使用单冒号
导致这种混淆一直延续下来

注意

在使用伪类和伪元素的时候
有一点要特别注意
伪类就像真正的类一样,可以叠加使用
没有数量上限,只要不是互斥的
比如这样

em:first-child:hover {
    color: red;
}

这是完全可以的
但注意,这里是“与”的关系
也就是说既要满足“first-child”第一个子元素
又要满足“hover”光标悬浮


伪元素就要严格的多
伪元素在一个选择器中只能出现一次,并且只能出现在末尾
(这里有同学误会了,所以我作出了修改)
像下面的样式是无法生效的

p::first-letter:hover {  /*错误的写法:伪元素不是末尾*/
    color: red;
}
p::first-letter::selection {  /*错误的写法:伪元素出现了多个*/
    color: red;
}

再多说一句关于它们的优先级
在计算权重的时候
伪类与类优先级相同
伪元素与标签优先级相同

总结

  • 伪类与伪元素都是用于向选择器加特殊效果
  • 伪类与伪元素的本质区别就是是否抽象创造了新元素
  • 伪类只要不是互斥可以叠加使用
  • 伪元素在一个选择器中只能出现一次,并且只能出现在末尾
  • 伪类与伪元素优先级分别与类、标签优先级相同
    https://blog.csdn.net/q1056843325/article/details/53560588

相关文章

  • CSS伪类和伪元素

    1. 什么是伪类和伪元素1.1. 伪类1.2. 伪元素1.3. 伪类与伪元素的区别 2. 使用 1. 什么是伪类和...

  • 伪元素与伪类的区别

    CSS中伪类与伪元素的概念是很容易混淆的今天就来谈谈伪类与伪元素之间的区别 定义 首先先来看看伪类与伪元素的定义w...

  • css伪类及伪元素

    CSS中伪类与伪元素的概念是很容易混淆的今天就来谈谈伪类与伪元素之间的区别 定义 首先先来看看伪类与伪元素的定义w...

  • 细说CSS伪类和伪元素

    原文 博客原文 大纲 1、伪元素2、伪类元素3、伪元素和伪类元素的区别4、伪类和伪元素的使用 1、伪元素 伪元素在...

  • 撩课-Web大前端每天5道面试题-Day2

    1.伪类与伪元素的区别? 1) 定义区别 2) 语法区别 3) 伪类/伪元素一览表 2. css样式优先级,各自的...

  • CSS伪类

    CSS伪类 伪类是用来添加一些选择器的特殊效果。 伪类和伪元素的区别 有些人搞不清楚伪类和伪元素的区别,我们先来讲...

  • 第十二章 高级选择器

    伪类和伪元素区别 伪类一个冒号,伪元素两个冒号 一,伪类选择器 伪类性质: 伪类性质:加冒号不会对页面产生布局结...

  • CSS伪类和伪元素

    这篇文章比较详细的说明有哪些伪类和伪元素:总结伪类和伪元素 这句话说清楚伪类和伪元素的区别说的挺好的:(出处:重新...

  • CSS基础

    伪类和伪元素的区别 伪类表示状态 伪元素是真的有元素 前者单冒号,后者双冒号 图标 将svg图片转化为图标字体文件...

  • CSS 属性 - 伪类和伪元素的区别

    前言:之前自己一直没有弄清楚伪类和伪元素的区别,所以自己打算总结回顾一下。 一、伪类和伪元素的定义 伪类(Pseu...

网友评论

      本文标题:伪元素与伪类的区别

      本文链接:https://www.haomeiwen.com/subject/xryrgftx.html