CSS 中的伪类、伪元素总结

发布于 2023-05-09 12:48:28 字数 2567 浏览 70 评论 0

配图源自 Freepik

老是不记得哪个用双冒号,哪个用单冒号,不知道你们有没有这种困惑。尽管知道是可兼容的,但还是想再整理一下。

一、概念

伪类(pseudo-classes)
用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。

伪元素(pseudo-elements)
用于创建一些不在文档树中的元素,并为其添加样式。

伪类的操作对象是「文档树中已有的元素」,而伪元素则创建了一个「文档树之外的元素」。因此,伪类与伪元素的区别在于:有没有创建一个文档树之外的元素。

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

按 CSS3 规范,

伪元素使用双冒号(::)表示,伪类使用单冒号(:)表示。

如果不按规范行事,并需要兼容 IE8 以下浏览器,

无论是伪类,还是伪元素,都使用单冒号(:)表示。

但是,经过各大浏览器厂商们的加班加点(可能是为了兼容性考虑),

除了少部分伪元素(比如 ::backdrop)必须使用双冒号之外,大部分伪元素都支持单冒号和双冒号的写法。

对于伪元素是使用单冒号还是双冒号的问题,W3C 标准中的描述如下:

Please note that the new CSS3 way of writing pseudo-elements is to use a double colon, eg a::after { ... }, to set them apart from pseudo-classes. You may see this sometimes in CSS. CSS3 however also still allows for single colon pseudo-elements, for the sake of backwards compatibility, and we would advise that you stick with this syntax for the time being.

综上所述:除了必须要双冒号的伪元素之外,为了向后兼容,建议伪元素也使用单冒号的写法。

三、常见的伪元素、伪类

伪类:

伪元素:

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

念﹏祤嫣

暂无简介

0 文章
0 评论
24 人气
更多

推荐作者

eins

文章 0 评论 0

世界等同你

文章 0 评论 0

毒初莱肆砂笔

文章 0 评论 0

初雪

文章 0 评论 0

miao

文章 0 评论 0

qq_zQQHIW

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文