美文网首页CSS
5.CSS中伪类和伪元素的区别

5.CSS中伪类和伪元素的区别

作者: 笨蛋小明 | 来源:发表于2018-11-08 17:47 被阅读0次

一、前言

在CSS1和CSS2中对伪类和伪选择器没有做出很明显的区别定义,而二者在语法是一样的,都是以:开头,这造成很多人会将某些伪元素误认为是伪类,如:before,:after;而在CSS3给出的定义中,二者区别更为明显,也更容易理解。

二、定义

伪类用于选择DOM树之外的信息,比如:visited,:active;或是不能用简单选择器进行表示的信息,包含那些满足一定逻辑条件的DOM树中的元素,比如:first-child,:first-of-type,:target。

伪元素
DOM树没有定义的虚拟元素。不同于其他选择器,它不以元素为最小选择单元,它选择的是元素指定内容。比如::before表示选择元素内容的之前内容,也就是"";::selection表示选择元素被选中的内容。

三、语法

在CSS3中,伪类与伪元素在语法上也有所区别,伪元素修改为以::开头。但因为历史原因,浏览器对以:开头的伪元素也继续支持,但建议规范书写为::开头。

四、总结

  • 1.伪类本质上是为了弥补常规CSS选择器的不足,以便获取到更多信息;
  • 2.伪元素本质上是创建了一个有内容的虚拟容器;
  • 3.CSS3中伪类和伪元素的语法不同;
  • 4.可以同时使用多个伪类,而只能同时使用一个伪元素;

五、伪类/伪元素一览表

伪类

Selector Meaning CSS
:active 选择正在被激活的元素 1
:hover 选择被鼠标悬浮着元素 1
:link 选择未被访问的元素 1
:visited 选择已被访问的元素 1
:first-child 选择满足是其父元素的第一个子元素的元素 2
:lang 选择带有指定 lang 属性的元素 2
:focus 选择拥有键盘输入焦点的元素 2
:enable 选择每个已启动的元素 3
:disable 选择每个已禁止的元素 3
:checked 选择每个被选中的元素 3
:target 选择当前的锚点元素 3
:first-of-type 选择满足是其父元素的第一个某类型子元素的元素 3
:last-of-type 选择满足是其父元素的最后一个某类型子元素的元素 3
:only-of-type 选择满足是其父元素的唯一一个某类型子元素的元素 3
:nth-of-type(n) 选择满足是其父元素的第n个某类型子元素的元素 3
:nth-last-of-type(n) 选择满足是其父元素的倒数第n个某类型的元素 3
:only-child 选择满足是其父元素的唯一一个子元素的元素 3
:last-child 选择满足是其父元素的最后一个元素的元素 3
:nth-child(n) 选择满足是其父元素的第n个子元素的元素 3
:nth-last-child(n) 选择满足是其父元素的倒数第n个子元素的元素 3
:empty 选择满足没有子元素的元素 3
:in-range 选择满足值在指定范围内的元素 3
:out-of-range 选择值不在指定范围内的元素 3
:invalid 选择满足值为无效值的元素 3
:valid 选择满足值为有效值的元素 3
:not(selector) 选择不满足selector的元素 3
:optional 选择为可选项的表单元素,即没有“required”属性 3
:read-only 选择有"readonly"的表单元素 3
:read-write 选择没有"readonly"的表单元素 3
:root 选择根元素 3

伪元素

Selector Meaning CSS
::first-letter 选择指定元素的第一个单词 1
::first-line 选择指定元素的第一行 1
::after 在指定元素的内容前面插入内容 2
::before 在指定元素的内容后面插入内容 2
::selection 选择指定元素中被用户选中的内容 3

相关文章

  • 细说CSS伪类和伪元素

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

  • CSS伪类和伪元素

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

  • 5.CSS中伪类和伪元素的区别

    一、前言 在CSS1和CSS2中对伪类和伪选择器没有做出很明显的区别定义,而二者在语法是一样的,都是以:开头,这造...

  • CSS伪类

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

  • CSS伪类和伪元素

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

  • 伪元素与伪类的区别

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

  • css伪类及伪元素

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

  • 第十二章 高级选择器

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

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

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

  • CSS基础

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

网友评论

    本文标题:5.CSS中伪类和伪元素的区别

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