33
<!DOCTYPE html>
<html>
<head>
<style> 

div
{
transition:after 3s;
-webkit-transition:after 3s;
}

div:hover:after
{
content:"- positive!";
}
</style>
</head>
<body>

<div>Test</div>

</body>
</html>

我上面有这个示例代码。我正在尝试使用“过渡”,以便文本:“-肯定!” 滑动/显示需要 3 秒。但它不起作用..如何解决它?

4

1 回答 1

60

after不是 的有效值transition

而是将transition其作为:after选择器的属性。

HTML

<div>Test</div>

CSS

div:after {
    content:" - positive!";
    position: relative;
    opacity: 0;
    top: -20px;
    -webkit-transition: all 3s;
    transition: all 3s;
}
div:hover:after {
    opacity: 1;
    top: 0px;
}

演示

您还可以在悬停和悬停状态下进行不同的转换。这允许我们延迟显示伪元素,但没有延迟隐藏它。

CSS

div:after {
    content:" - positive!";
    position: relative;
    opacity: 0;
    top: -20px;
    -webkit-transition: all 250ms;
    transition: all 250ms;
}
div:hover:after {
    opacity: 1;
    top: 0px;
    -webkit-transition: all 3s;
    transition: all 3s;
}

演示

以下是支持伪元素转换的浏览器列表:http: //css-tricks.com/transitions-and-animations-on-css-generated-content/

于 2013-10-25T01:17:24.223 回答