HTML:
<p>Hover</p>
CSS:
p::after {
content: " here";
transition: all 1s;
}
p:hover::after {
font-size: 200%;
color: red;
}
现场演示: http: //jsfiddle.net/SPHzj/13/(适用于 Firefox 和 Chrome)
如您所见,我::after
在段落的伪元素上设置了 CSS 过渡。然后,当段落悬停时,两种新样式适用于过渡的伪元素。
这适用于 Firefox 和 Chrome,但不适用于 IE10。我的理由是 IE 不理解p:hover::after
选择器,因为如果您将悬停设置在祖先元素上,它可以在 IE 中工作,例如div:hover p::after
- 现场演示:http: //jsfiddle.net/SPHzj/14/。
然而,事实并非如此,因为 IE 确实能够理解该选择器。诀窍是也定义一个p:hover {}
规则。(由@maxw3st发现。)
p:hover {}
此规则可以为空。仅此规则的存在将使 IE10 中的转换工作。
现场演示: http: //jsfiddle.net/SPHzj/15/(也适用于 IE10)
这里发生了什么?为什么 IE 要求存在该规则才能使过渡对伪元素起作用?这应该被认为是一个错误吗?