【发布时间】:2015-08-03 18:16:22
【问题描述】:
我在 CSS 中使用简单的:hover:after 在 div 顶部创建一个深色叠加层。我还使用transition 属性使其淡入淡出,而不是简单地出现和消失。
现在,淡入它的效果非常好,但另一方面,淡出却不行。它只是消失了,就好像从来没有 transition 在一起一样。
这是简化的代码:
HTML:
<div class="innerImg"></div>
CSS(完整代码):
.innerImg {
float: left;
height: 74%;
background-image: url("../images/an_image.jpg");
background-size: 100%;
background-repeat: no-repeat;
width: 100%;
border-bottom: 1px solid #9F9F9F;
transition: all .2s ease;
overflow: hidden;
position: relative;
}
.innerImg:hover {
border-color: #F8CE26;
transition: all .2s ease;
}
.innerImg:after {
transition: all .2s ease;
content: "";
}
.innerImg:hover:after {
content: "";
display: block;
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 10;
background-color: rgba(0,0,0,0.7);
cursor: pointer;
transition: all .2s ease;
}
无奈之下,我申请了transition到处,但仍然没有任何变化。最初,只需将其放入 .innerImg 和 .innerImg:after 就足够了。事实上,直到我创建了 :after 并给出了 transition,它才起作用。
我在这里遗漏了什么愚蠢的东西?
【问题讨论】:
-
以防万一
::after是伪元素而不是伪类/状态,所以它应该与双冒号一起使用。 -
@c-smile 哦,我忘了。不过,这并不能解决任何问题。
标签: html css css-transitions pseudo-element