当前位置: 首页 >文章 > 每天一个前端冷知识系列:CSS 伪类选择器中的: 和 ::区别是什么?
收藏
分享

每天一个前端冷知识系列:CSS 伪类选择器中的: 和 ::区别是什么?

举报李游Leo李游Leo发布于 2020-06-031578阅读3点赞
前端人员写伪类选择器的时候经常会遇到非常像的: 和 ::...

我们在平时工作中或者看到其他一些前端人员写伪类选择器的时候经常能看到有时候一个冒号,有时候两个冒号,而且似乎都是可以的,所以,这两者到底有什么区别呢?

这里面其实有一个很大的区别,就是 hover 和 after 虽然我们在早期都管他们叫伪类,但是实际上他们俩的作用并不一样,一个类似于JS效果,一个类似于一个元素。

所以在后来,很多程序员不干了,觉得其实他们并不一样,严谨的 W3C 就把类似于元素的给专门剥离出来了,叫专门叫做伪元素。

然后,W3C官方也给这两者进行了的定义:

CSS 伪类用于向某些选择器添加特殊的效果。

CSS 伪元素用于将特殊的效果添加到某些选择器。

可以明确两点,第一两者都与选择器相关,第二就是添加一些“特殊”的效果。这里特殊指的是两者描述了其他 CSS 无法描述的东西。

所以最后的结论就是 :伪类偏向于元素的动作效果,伪元素偏向于元素的属性。

而最早的并没有对这些进行区分,所以最早的伪类都是一个冒号。

所以我们最早看到的:after、:before虽然属于伪元素,但是已经属于最早都定型了,所以就一直在那放着了

然后 CSS3 为了区分两者,已经明确规定了伪类用一个冒号来表示,而伪元素则用两个冒号来表示。所以对于CSS2之前已有的伪元素,比如:before,单冒号和双冒号的写法::before作用是一样的

简单来说就是一场最早官方没想好,后期想分类出来,但是之前的也只就能这样的一个事件了,用咱们程序员的话就解释为:历史遗留问题

咱们看一下目前的伪类:

伪元素(单双冒号都可以):

0条评论
别默默看啦~登录/注册一起参与讨论吧~

暂无评论

请选择举报理由

违反法律法规

侵犯个人权益

有害网站环境

更多训练营>>

为你推荐 · 训练营(全勤打卡报名费全额返累计全额返用户133,637人)

电商海报设计训练营
距离开班仅剩11天66人已报名
【5月】零基础手绘插画训练营
距离开班仅剩11天52人已报名
【5月】零基础动态表情包创作训练营
距离开班仅剩28天15人已报名
特惠
充值
7折购
今日还在继续学习的你,太棒了!
7
折扣券可用于
年费无限VIP
立 即
使 用
此活动优惠不可与其他活动叠加使用
有效期:000000
消息
登录即可查看消息记录
建议
意见
官方
客服
在线咨询客服热线

您可以与在线客服进行沟通获得帮助

工作日:9:00~22:00节假日:9:00~18:00

联系在线客服

您可以电话联系客服进行沟通获得帮助

工作日:9:30~18:30

400-862-9191
虎课
积分
免费学习89000+个教程!
配套素材、源文件一键下载!
昨日学员已学习了41,154
并提交了234份作业!
登录后立即学习!
loading
微信扫码关注即可登录
您需要同意协议才可以进行登录
登录虎课网,每天免费学课程全站 89000+ 视频会员教程 | 每日可免费学 1
为确保账户信息安全
请先进行真实姓名验证后进行充值付款
立即验证