谷歌Chrome在版本27.0.1453.110 m中加入了WebKit的错误修复。
这个WebKit的错误已经被修复:http://trac.webkit.org/changeset/138632
可以对伪元素:before
和:after
进行动画处理,以下是关于动画处理:before
和:after
的一些示例。
在你上面的示例上进行修改后,对其进行编辑,使其在悬停时不需要模拟的mouseleave
/mouseout
延迟更平滑地进出:
http://jsfiddle.net/MxTvw/234/
尝试在第二个:hover
伪类规则中添加主选择器#foo
和分组:hover
伪类。还要添加transition
属性,而不仅仅是供应商特定的前缀属性,来设置transition
:
#foo:after{
display: block;
content: '';
width: 200px;
height: 200px;
background: red;
-webkit-transition: all .4s ease-in-out;
-moz-transition: all .4s ease-in-out;
-o-transition: all .4s ease-in-out;
transition: all .4s ease-in-out;
}
#foo,
#foo:hover:after,
#foo:hover:before{
width: 250px;
height: 250px;
}
请注意,从现在开始,任何伪元素如 :before
和 :after
都应该使用双冒号语法 ::before
和 ::after
。本示例利用悬停时的覆盖 background-color
和 background-image
模拟淡入淡出效果:
http://jsfiddle.net/MxTvw/233/
本示例模拟了一个旋转动画的效果:
http://jsfiddle.net/Jm54S/28/
当然,如果遵循 CSS3 标准,我们可以使用 ::before
和 ::after
。
此方法适用于最新版的 Firefox、Chrome、Safari、Opera 18+、IE10 和 IE11(IE9 及以下版本不支持 CSS3 transitions 或 animate)。
::after
元素做什么? - Ry-