浏览器对 :before/:after 伪元素的支持

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

今年夏天我将做一些关于伪元素及其所有巧妙用法的演讲。关于它们的一个很酷的事情是,浏览器的支持实际上非常好——比一些 CSS3 功能好得多。事实上,您可以用它们复制一些 CSS3 功能(例如 多个背景,有点像)

我想制作一个浏览器兼容性图表,以便非常清楚地了解如果使用伪元素 :before 和 :after 会获得什么样的支持。我的研究主要基于这个 快速演示页面。我在自己可以运行的浏览器中查看了该页面,通过 BrowserShots 运行它,最后查看了旧版浏览器的文档。

Firefox 3.5 及以上 支持
额外:Firefox 4 可以对它们进行过渡
3.0 及以下 部分支持
不支持元素上的定位或浮动。
Safari 已测试:4 及以上
显然:1.3 及以上
支持
Chrome 所有版本 支持
Opera 6(文档)及以上 支持
Internet Explorer 9 及以上 支持
8 部分支持
不尊重 z-index,必须使用文档类型声明,如果使用 :hover:after/:hover:before 则必须声明 :hover 状态
7 及以下 不支持

支持级别

让我们获取三个不同的数据来源。列出的百分比是根据(2011 年 6 月)过去一个月的访客计算得出的,方法是将支持伪元素的每个浏览器版本的每个版本的访客百分比加起来。

W3Schools 浏览器使用数据 91.9%
CSS-Tricks(通过我的 Google Analytics 97%
StatCounter 84.8%

需要更新…

如果有人可以访问旧版浏览器并进行测试,那就太好了。

  • 我只证明了 Safari 4+ 可以工作,但看到了 1.3+ 支持它们的文档。
  • 我只证明了 Opera 7+ 可以工作,但看到了 6 支持它们的文档。可能会更早。
  • 任何其他尚未提及的怪癖…