0

0

css3的伪类和伪元素的区别是什么

青灯夜游

青灯夜游

发布时间:2021-12-22 10:54:04

|

5967人浏览过

|

来源于php中文网

原创

区别:1、伪类用于已有元素处于某种状态时为其添加对应的样式,而伪元素用于创建一些不在DOM树中的元素并为其添加样式;2、伪元素会创建一个文档树之外的元素,伪类不会;3、伪元素使用双冒号“::”表示,伪类使用单冒号“:”表示。

css3的伪类和伪元素的区别是什么

本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。

什么是伪类和伪元素

提到“伪”字,你想到了什么?“假的”,“汪精卫伪政府”,“不存在的”······

伪类:用于已有元素处于某种状态时(滑动、点击等)为其添加对应的样式,这个状态是根据用户行为而动态变化的。我的理解就是:本身不存在,只有在特定的情况(滑动、点击)下才会被触发的状态,可以用css去修饰这个状态下的对象。例如:当用户悬停在指定元素时,可以通过:hover来描述这个元素的状态,虽然它和一般css相似,可以为已有元素添加样式,但是它只有处于DOM树无法描述的状态下才能为元素添加样式,所以称为伪类。

立即学习前端免费学习笔记(深入)”;

伪元素:用于创建一些不在DOM树中的元素,并为其添加样式。例如,我们可以通过:before来在一个元素之前添加一些文本,并为这些文本添加样式,虽然用户可以看见这些文本,但是它实际上并不在DOM文档中。

伪类和伪元素的区别:

请看下面例子:

例一:

  • 第一列
  • 第二列

如果我们想要给第一列添加样式,我们可以通过以下两种方式:

(1)给第一列添加一个类,并在该类中定义样式:

  • 第一列
  • 第二列
.first-item{color:orange;}

(2)如果不用添加类的方法,我们可以通过给第一个

  • 设置:first-child伪类来为其添加样式,这时,被修饰的li依然存在于DOM树中
    • 第一个
    • 第二个
    li:first-child{color:orage;}

    例二:

    Hello World, and wish you have a good day!

    想要给该段落第一个字母添加样式,可以有以下方法:

    (1)給第一个字母包裹元素,并给span设置样式:

    Hello World, and wish you have a good day!

    .first{color:red;}

    (2)如果不创建元素,我们可以通过给

    元素设置P:first-letter伪元素为其添加样式,这时看起来像创建了一个虚拟的span元素并为其添加样式,但实际上在DOM数中并不存在这个span元素

    Hello World, and wish you have a good day!

    p:first-letter{color:red;}

    从上述例子中我们可以看出:伪类的操作对象是文档树中已有的元素,而伪元素则创建了一个文档树外的元素。因此,伪类与伪元素的区别在于:有没有创建一个文档树之外的元素。

    伪元素使用单冒号还是双冒号?

    css3规范中要求使用双冒号(::)表示伪元素,以此来区分伪类和伪元素,比如::before和::after等伪元素使用双冒号(::),:hover和:active伪类使用单冒号(:)。除了一些低于IE8版本的浏览器外,大部分浏览器都支持伪元素的双冒号(::)表示方法。

    然而除了少部分伪元素如::backdrop必须使用双冒号(::),大部分伪元素都支持单冒号和双冒号的写法,比如::after,写成:after一样可以正常运行。

    w3c标准中说到,虽然CSS3标准要求伪元素使用双冒号的写法,但也依然支持单冒号的写法。为了向后兼容,我们建议你在目前还是使用单冒号的写法。

    常用伪类有:

    :active 选择正在被激活的元素(匹配指定状态)

    :hover 选择被鼠标悬浮着的元素(匹配指定状态)

    :link 选择未被访问的元素 (匹配指定状态)

    :visited 选择已被访问的元素(匹配指定状态)

    :first-child 选择满足是其父元素的第一个子元素的元素

    :lang(value) 选择带有指定 lang 属性的元素

    :focus 选择拥有键盘输入焦点的元素

    企业黄页-大众投资指南整站 asp.net 2.0
    企业黄页-大众投资指南整站 asp.net 2.0

    大众投资指南是基于Asp.Net(2.0)+C#+Access(sql2000)的企业黄页类程序,是基于web2.0 模式的网站。 贴吧和黄页都有采集功能 主程序包括分类信息和商家黄页两大模块。分类信息支持二级分类,商家黄页支持二级地区分类及二级行业分类。程序采用了伪静态(url重写)技术,可选生成纯静态首页。 一、分类信息仿百度贴吧编写,可以分别对游客及会员设置不同的审核条件。会员发布信息

    下载

    :enable 选择每个已启动的元素

    :disable 选择每个已禁止的元素

    :checked 选择每个被选中的元素

    :target 选择当前的锚点元素

    :first-of-type 选择满足是其父元素的第一个某类型子元素的元素

    :last-of-type 选择满足是其父元素的最后一个某类型子元素的元素

    :only-of-type 选择满足是其父元素的唯一一个某类型子元素的元素

    :nth-of-type(n) 选择满足是其父元素的第n个某类型子元素的元素

    :nth-last-of-type(n) 选择满足是其父元素的倒数第n个某类型的元素

    :only-child 选择满足是其父元素的唯一一个子元素的元素

    :last-child 选择满足是其父元素的最后一个元素的元素

    :nth-child(n) 选择满足是其父元素的第n个子元素的元素

    :nth-last-child(n) 选择满足是其父元素的倒数第n个子元素的元素

    :empty 选择满足没有子元素的元素

    :in-range 选择满足值在指定范围内的元素

    :out-of-range 选择值不在指定范围内的元素

    :invalid 选择满足值为无效值的元素

    :valid 选择满足值为有效值的元素

    :not(selector) 选择不满足selector的元素

    :optional 选择为可选项的表单元素,即没有“required”属性

    :read-only 选择有"readonly"的表单元素

    :read-write 选择没有"readonly"的表单元素

    :root 选择根元素

    常用伪元素

    ::first-letter 选择指定元素的第一个单词

    ::first-line 选择指定元素的第一行

    ::after 在指定元素的内容前面插入内容

    ::before 在指定元素的内容后面插入内容

    ::selection 选择指定元素中被用户选中的内容

    (学习视频分享:css视频教程

  • 相关文章

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    相关专题

    更多
    html5动画制作有哪些制作方法
    html5动画制作有哪些制作方法

    html5动画制作方法有使用CSS3动画、使用JavaScript动画库、使用HTML5 Canvas等。想了解更多html5动画制作方法相关内容,可以阅读本专题下面的文章。

    508

    2023.10.23

    HTML与HTML5的区别
    HTML与HTML5的区别

    HTML与HTML5的区别:1、html5支持矢量图形,html本身不支持;2、html5中可临时存储数据,html不行;3、html5新增了许多控件;4、html本身不支持音频和视频,html5支持;5、html无法处理不准确的语法,html5能够处理等等。想了解更多HTML与HTML5的相关内容,可以阅读本专题下面的文章。

    430

    2024.03.06

    html5从入门到精通汇总
    html5从入门到精通汇总

    想系统掌握HTML5开发?本合集精选全网优质学习资源,涵盖免费教程、实战项目、视频课程与权威电子书,从基础语法到高级特性(Canvas、本地存储、响应式布局等)一应俱全,适合零基础小白到进阶开发者,助你高效入门并精通HTML5前端开发。

    45

    2025.12.30

    html5新老标签汇总
    html5新老标签汇总

    HTML5在2026年持续优化网页语义化与交互体验,不仅引入了如<header>、<nav>、<article>、<section>、<aside>、<footer>等结构化标签,还新增了<video>、<audio>、<canvas>、<figure>、<time>、<mark>等增强多媒体与

    62

    2025.12.30

    html5空格代码怎么写
    html5空格代码怎么写

    在HTML5中,空格不能直接通过键盘空格键实现,需使用特定代码。本合集详解常用空格写法:&nbsp;(不间断空格)、&ensp;(半个中文空格)、&emsp;(一个中文空格)及CSS的white-space属性等方法,帮助开发者精准控制页面排版,避免因空格失效导致布局错乱,适用于新手入门与实战参考。

    74

    2025.12.30

    html5怎么做网站教程
    html5怎么做网站教程

    想从零开始学做网站?这份《HTML5怎么做网站教程》合集专为新手打造!涵盖HTML5基础语法、页面结构搭建、表单与多媒体嵌入、响应式布局及与CSS3/JavaScript协同开发等核心内容。无需编程基础,手把手教你用纯HTML5创建美观、兼容、移动端友好的现代网页。附实战案例+代码模板,快速上手,轻松迈出Web开发第一步!

    155

    2025.12.31

    HTML5建模教程
    HTML5建模教程

    想快速掌握HTML5模板搭建?本合集汇集实用HTML5建模教程,从零基础入门到实战开发全覆盖!内容涵盖响应式布局、语义化标签、Canvas绘图、表单验证及移动端适配等核心技能,提供可直接复用的模板结构与代码示例。无需复杂配置,助你高效构建现代网页,轻松上手前端开发!

    26

    2025.12.31

    html5怎么使用
    html5怎么使用

    想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

    37

    2025.12.31

    c++ 根号
    c++ 根号

    本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

    25

    2026.01.23

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    CSS3 教程
    CSS3 教程

    共18课时 | 4.8万人学习

    HTML5/CSS3/JavaScript/ES6入门课程
    HTML5/CSS3/JavaScript/ES6入门课程

    共102课时 | 6.8万人学习

    HTML+CSS基础与实战
    HTML+CSS基础与实战

    共132课时 | 9.7万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号