Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >前端 | CSS 伪元素、伪类是什么?他们的区别在哪里你知道吗?

前端 | CSS 伪元素、伪类是什么?他们的区别在哪里你知道吗?

作者头像
倾盖
发布于 2022-08-16 06:25:45
发布于 2022-08-16 06:25:45
1.3K05
代码可运行
举报
文章被收录于专栏:RivenCabinRivenCabin
运行总次数:5
代码可运行

一、伪元素和伪类介绍

什么是伪元素?

伪元素 是一个附加至选择器末的关键词,允许你对被选择元素的特定部分修改样式。

eg:下例中的 ::first-line伪元素可改变段落首行文字的样式。

HTML:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<p class="content">
       我们在这里放一下段落abc <br>
       这是第二行<br>
       这是第三行
   </p>

CSS:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.content::first-line {
      font-weight: bold;
      color: rebeccapurple;
      text-transform: uppercase;
  }

运行结果:

什么是伪类?

伪类 是添加到选择器的关键字,指定要选择的元素的特殊状态

​ eg:例如,**:hover** 可被用于在用户将鼠标悬停在按钮上时改变按钮的颜色。

HTML:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<button class="btn">按钮</button>

CSS:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.btn:hover {
      color: blue;
}

运行结果:

注意:

  • 与伪类相比,伪类能够根据元素状态改变元素样式。
  • 一个选择器中只能使用一个伪元素。伪元素必须紧跟在语句中的简单选择器/基础选择器之后。
  • 按照规范,应该使用双冒号(::)而不是单个冒号(:),以便区分伪类和伪元素。但是,由于旧版本的 W3C 规范并未对此进行特别区分,因此目前绝大多数的浏览器都同时支持使用这两种方式来表示伪元素。

二、伪元素和伪类的区别

伪类选择元素基于的是当前元素处于的状态,或者说元素当前所具有的特性,而不是元素的id、class、属性等静态的标志。由于状态是动态变化的,所以一个元素达到一个特定状态时,它可能得到一个伪类的样式;当状态改变时,它又会失去这个样式。由此可以看出,它的功能和class有些类似,但它是基于文档之外的抽象,所以叫伪类。

与伪类针对特殊状态的元素不同的是,伪元素是对元素中的特定内容进行操作,它所操作的层次比伪类更深了一层,也因此它的动态性比伪类要低得多。实际上,设计伪元素的目的就是去选取诸如元素内容第一个字(母)、第一行,选取某些内容前面或后面这种普通的选择器无法完成的工作。它控制的内容实际上和元素是相同的,但是它本身只是基于元素的抽象,并不存在于文档中,所以叫伪元素。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
《以太坊攻略》,小白如何逆袭成为技术大咖?要学的全在这里了
ConsenSys产品经理认为,区块链新手和经验丰富的区块链开发人员,需要共享工具、开发模式和组件。
区块链大本营
2018/09/21
1.9K0
《以太坊攻略》,小白如何逆袭成为技术大咖?要学的全在这里了
2022-区块链开发工具库
关键部分: Solidity - 最流行的智能合约语言。 Metamask - 与 Dapps 交互的浏览器扩展钱包。 Truffle - 最流行的智能合约开发、测试和部署框架。 Truffle box - 以太坊生态系统的打包组件。 Hardhat - 灵活、可扩展和快速的以太坊开发环境。 Cryptotux - 准备在 VirtualBox 中导入的 Linux 映像,包括上面提到的开发工具 OpenZeppelin Starter Kits - 一个多合一的入门盒,供开发人员快速启动他们的智能合约支持
十四君
2022/04/02
1.7K0
收藏贴 :2019年必备43种区块链开发工具 原
本文列出2019年最新整理的用于区块链开发的43种流行的开发库、开发工具与开发框架。
用户1408045
2019/05/14
1.7K0
收藏贴 :2019年必备43种区块链开发工具
                                                                            原
第三课 以太坊术语说明及开发者资源列表
也称钱包,提供账户管理、挖矿、转账、智能合约的部署和执行等等功能,以太坊节点利用以太坊客户端接入到以太坊网络。 现在以太坊客户端主要有:Wallent/ist , Geth, Parity, Harmony,
辉哥
2018/08/10
7520
第三课 以太坊术语说明及开发者资源列表
2022十大智能合约开发工具
我们将研究十类工具,然后看看每个类别中最适合智能合约/区块链/solidity/vyper/rust/web3开发者的工具(我们现在有太多 “区块链开发者”的术语)。
Tiny熊
2022/02/22
2.1K0
2022十大智能合约开发工具
以太坊DApp系列(二)---从入门到出家
以太坊自2013年V神提出后,被无数人赋予美好的愿景,甚至被称为区块链2.0,其代币发行量更是达到了全球第二,仅次于比特币,而其带来的智能合约概念颠覆了人们对区块链的理解,让区块链不仅仅是个账本,更像一个操作系统,赋予了每个节点“智能”。经过差不多半年来断断续续的学习、理解和沉淀,笔者今天想揭开以太坊DApp神秘的面纱,看看以太坊是猴还是猿。
forrestlin
2018/07/17
3.6K0
以太坊DApp系列(二)---从入门到出家
每周以太坊进展2022/4/16
(编者注:本翻译不代表登链社区的立场,也不代表我们(有能力并且已经)核实所有的事实并把他的观点分离开来。)
Tiny熊
2022/05/25
4470
干货 | 以太坊工具集合,解决你的入门困难
如果你是一名区块链或以太坊新手,一开始接触以太坊生态系统中的工具和技术时很可能会像我一样一头雾水。为了让大家对以太坊的技术生态有一个整体的了解,并熟悉各部分的组合,本篇文章就将对以太坊学习中经常会遇到
区块链大本营
2018/06/19
8840
每周以太坊进展2022/4/9
(编者注:本翻译不代表登链社区的立场,也不代表我们(有能力并且已经)核实所有的事实并把他的观点分离开来。)
Tiny熊
2022/05/25
3820
福利|评价超高的《精通以太坊》丛书免费送,还包邮!手慢无
在去中心化应用中,发送给节点的请求通常被称为“交易”。交易和普通的请求有很大不同,即交易的数据经过用户个人签名之后发送到节点。
区块链大本营
2018/11/07
1.1K0
敢挑战吗?这30个以太坊开发示例,让你成为80万都挖不走的区块链人才!
我曾经买过加密货币,曾试图使用一些丑陋矿机挖矿,看过一些稀稀拉拉的Solidity教程。但不得不承认,在当时,我更偏爱前者,我切身体会到了加密货币的狂热,急切需要一种平衡,急切停止这种狂热行为,我最终选择了离开,大概四五个月的时间吧。
区块链大本营
2018/09/21
8290
敢挑战吗?这30个以太坊开发示例,让你成为80万都挖不走的区块链人才!
这30个以太坊开发示例,让你成为80万都挖不走的区块链人才!
我曾经买过加密货币,曾试图使用一些丑陋矿机挖矿,看过一些稀稀拉拉的Solidity教程。但不得不承认,在当时,我更****偏爱前者,我切身体会到了加密货币的狂热,急切需要一种平衡,急切停止这种狂热行为,我最终选择了离开,大概四五个月的时间吧。
辉哥
2018/09/27
1.2K0
这30个以太坊开发示例,让你成为80万都挖不走的区块链人才!
每周以太坊进展2022/4/23
(编者注:本翻译不代表登链社区的立场,也不代表我们(有能力并且已经)核实所有的事实并把他的观点分离开来。)
Tiny熊
2022/05/25
4360
Solidity开发智能合约
以太坊的实用程序功能集合,如ethereumjs-util和ethereumjs-tx,github:
JavaEdge
2024/07/28
1610
Solidity开发智能合约
创建并部署ERC20代币
第一个标准由 Fabian Vogelsteller 于 2015 年 11 月以 ethereum request for Comments(ERC)引入,它被自动分配到 GitHub 第 20 个议题,所以叫“ERC20 代币”。目前绝大多数代币都基于 ERC20 标准。ERC20 后来变成了以太坊改进提案 20(EIP-20),但是大部分仍然使用它最初的名字,ERC20。
Tiny熊
2022/04/08
1.4K0
创建并部署ERC20代币
使用 React 和 ethers.js 构建DApp
scaffold-eth[2] 因为引入内容太多了,对于我来说太复杂了, 不知道大家有没有同感,找到一篇使用 React 开发 DApp 的非常简单入门教程。翻译一下.
Tiny熊
2022/11/07
5.6K0
使用 React 和 ethers.js 构建DApp
以太坊升级完成你也做不出爆款应用, 就因为你不知道这个!
互联网是一个去中心化的网络。相较于传统客户端/服务器应用,互联网的巨大优势在于其提供了开放、透明、公平的竞争环境。更多的竞争意味着更多的创新,这最终体现在为消费者提供更好的用户体验。其余的都是历史,互联网已经胜利了。
区块链大本营
2019/03/12
6560
以太坊升级完成你也做不出爆款应用, 就因为你不知道这个!
用Loom SDK 搭建的以太坊侧链并部署智能合约
前两天写了一篇 用Truffle开发一个链上记事本[1] ,很多人讲,这样写一条笔记成本该多高呀,这篇我们看看如何把链上记事本智能合约迁移到Loom SDK 搭建的以太坊侧链,在下一篇会介绍如何来用loom.js重写这个DApp[2]。
Tiny熊
2019/06/02
1.8K0
以太坊预言机与智能合约开发
什么是以太坊预言机?智能合约就其性质而言,能够运行各种算法并可以存储和查询数据。预言机可以监控区块链事件并能将监控结果发回智能合约。因为每个节点每次都需要大量计算,所以从Ethereum智能合约开发中进行频繁的网络请求是切不实际的。这样,智能合约就可以与链外的世界进行互动了。
笔阁
2018/09/04
1.2K0
动手编写一个以太坊智能合约
如何部署、调用智能合约 1RPC 之前的章节中讲到了怎么写、部署合约以及与合约互动(点击阅读上一章节)。现在该讲讲与以太坊网络和智能合约沟通的细节了。 一个以太坊节点提供一个RPC界面。这个界面给Ðapp(去中心化应用)访问以太坊区块链的权限和节点提供的功能,比如编译智能合约代码,它用JSON-RPC 2.0规范(不支持提醒和命名的参数) 的子集作为序列化协议,在HTTP和IPC (linux/OSX上的unix域接口,在Windows上叫pipe’s)上可用。 2惯例 RPC界面会使用一些惯例,但它们不是
区块链大本营
2018/05/10
6960
推荐阅读
相关推荐
《以太坊攻略》,小白如何逆袭成为技术大咖?要学的全在这里了
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验