生成的内容是指通过::before
和 ::after
添加到页面上的伪元素。在当前浏览器环境中,对这些元素应用过渡或动画的支持情况并不理想。我认为这是一个巨大的遗憾,所以我只是将这篇文章作为我的永久记录,以跟踪这方面的进展。
此表中的数据来自 此测试用例。
![]() |
3.6 及以下 | 不支持 |
---|---|---|
4.0 及以上 | 支持 | |
![]() |
6.0.5 及以下 | 不支持 – 错误报告 |
6.1 及以上 | 支持 | |
![]() |
25 及以下 | 不支持 |
26 及以上 | 支持 – 2013年1月3日修复 | |
![]() |
12.16 及以下 | 不支持 – 无法 进入这里,但 Divya Manian 确认错误报告存在,并且是 BTS 编号 CORE-29141。 |
15 及以上 | 支持 – Blink 转换后 | |
![]() |
9 及以下 | 不支持 |
10 及以上 | 支持 – 带有一个奇怪的警告 此处说明。 |
在移动设备上,iOS 6.1 及以下版本的 Safari 上不起作用,但在 iOS 7 上的 Safari 上可以。
为什么这很重要?
伪元素 非常有用。它们帮助我们在设计过程中完成一些花哨的事情,同时保持标记的整洁。伪元素最有用的一些额外设计元素与过渡和动画一样有用。它们之间有很多重叠。在撰写本文时,此网站的设计在页脚中使用了动画伪元素。底部的盒子行有徽标,这些徽标会滑入(或者应该滑入,如果普遍支持的话)。
浏览器没有理由不支持这一点。我理解所有关于优先级的事情,所以我不会抱怨或责怪浏览器还没有做到这一点,但我希望这篇文章能帮助大家稍微关注一下这个问题。
完全同意,这就是我一直使用 Jquery 的原因(这并不是一件坏事),我只是更希望用纯 CSS 实现一些语义上的性感。
仅供参考,jQuery 也不允许您动画化伪元素。
即使您为其提供 ID 并让 DOM 重新计算也不行吗?
伪元素不在 DOM 中,也不能有 ID。
哈哈 @John,我们都经历过(我想)
好吧,我不太常使用伪元素。不能怪我提出了一个看似合理的建议;)
呵呵,是的,如果我给任何人造成了任何困惑,我表示歉意。我指的是使用 Jquery 添加元素以保持 HTML 标记的整洁。(追加、前置)与伪元素一样。只是用 CSS 会更好。
它只在我的 Firefox 上工作,动画效果,真是太棒了,该死。我可能问了一个愚蠢的问题,但使用 canvas 元素实现这一点是否更容易?
嗨,我知道这个问题。我用这个解决方案解决了它
为 DIV 设置一些过渡,在 DIV 中放入 ::after 或 ::before,就是这样。但我希望他们在 2011 年能使其工作。
这意味着 div 将过渡,但不是专门的伪元素(但它们将随着 div 一起移动,您只是不能专门对它们进行过渡)。
同意,它可以带来很多新的可能性。特别是 'content' 属性与 '@keyframes' 一起使用,这可以制作一个不错的图像滑块。每 10 秒显示一个新图像,使其向左或向右滑动,纯 CSS 图像滑块。
我一直在考虑研究这个问题,因为我们正忙于对我们的网站进行全面改造,并且希望在伪元素中使用带有精灵的过渡!
它还没有得到很好的支持,真是太糟糕了!
这些伪元素很神奇……我迫不及待地想要抛弃 IE7 支持的那一天,以及使用这些小宝石来整理精灵和 HTML。
感谢你的提醒,Chris – 你为我节省了数小时的痛苦 :)
我很确定我们几乎到了可以抛弃 IE7 支持的阶段。它的浏览器份额仅比 IE6 高出 0.5%。
喜欢新的网站布局!
现代架构。哇哦!
是的,我迫不及待地想看到它被实现,特别是因为它将使在单个元素上切换背景图像成为可能。感谢 Chris 指出这一点,希望浏览器制造商能注意到这一点!
我已经等了 Chrome 的开发人员很久了,希望他们能修复这个问题……
我通常使用 Chrome 进行日常浏览,但在阅读了这篇文章后,我决定打开我的 Firefox(我昨天将其升级到 6 版)看看页脚附近的盒子应该是什么样子。这很有趣,但我发现这个网站在我的 Firefox 上无法正确显示(也许只是在 6 版上,我没有检查旧版本)。它似乎只影响主页和一些文章页面,但它们要么完全显示为黑色,要么只有标题在加载时显示,直到我向下滚动,即使那样,当我向上滚动时,也不是所有内容都显示出来。非常奇怪。
只有当视口宽度大于 1024 像素时才会发生这种情况,在某些宽度/高度组合下(我的全尺寸 Firefox 窗口一定是这些组合之一)。也许它与内容的动画重排有关,我以前不知道这一点——顺便说一句,这很酷。
页脚下方的框效果很酷。我记得在之前的版本中存在这种效果,我猜你当时使用的是 jQuery?因为它即使在 Chrome 上也能很好地滑入。
带有 jQuery 回退的 CSS3 :P
这很棒,因为干净的标记绝对是必要的,而且我自己也很喜欢!
干杯
我查看了浏览器支持和版本的表格,我感到难过。
这就是为什么仍然可以安全地使用 jQuery 来处理此类问题的原因。
Chrome 的 Canary/dev 版本(v. 15)也不支持生成内容上的过渡和动画。所以我想在 Chrome 中看到这个功能还需要一段时间。
我仍然相信,如今的 Web 开发者更多地遵循“支持每个浏览器并尝试使每个网站在每个浏览器中都相同”的流程。
我们需要转向新的风格,并在新的网站中添加一些新浏览器支持的 CSS3 内容。不要为旧浏览器提供 jQuery 回退,而是让浏览器回退到没有华丽 CSS3 效果的文本上。
这会激励用户开始使用新浏览器(版本),对吧?
我在更多 CSS3 网站和目前正在阅读的书“CSS3 之书”中读到过这一点,我完全同意。还有其他人也这样认为吗?
致敬
我一直是 CSS3 的忠实粉丝!但令人头疼的是,浏览器兼容性问题不断出现!我原本打算在我的博客中使用动画部分,但是……
我想,我得等等了。