你好,我正在回答这个问题,并且注意到一个奇怪的行为。
背景
我的HTML结构如下:
<div class="btn">
Click me
</div>
<div class="element">
Div Box With Pseudo Element
</div>
并且CSS 只是相关的
.element {
display:none;
}
.element:after {
content:" ";
display:block;
width:0;
background:black;
transition:6s ease;
}
.element.clicked:after {
width:100%;
}
需要将 element
设置为 display:none
,并在单击 btn
元素时显示/隐藏它。使用 Jquery 和 fadeToggle
可以很好地解决这个问题。
同时,在伪元素中添加一个 class
,使用 transition
和 width
进行动画效果。需要在父元素的淡入淡出同时执行动画。
问题
如果您查看此FIDDLE,可以注意到在第一次单击时,伪元素应该从0
增长到100%
,但实际上是100%
而没有增长。
如果您再次单击,则会从100%
更改为0
问题
我注意到,将 display:none
设置为元素会使伪元素消失。
这会导致元素无法从0
到100%
,因为它不存在。
有人知道如何停止这种行为或如何避免元素的不可见。我想知道伪元素是如何呈现的,以及它们是否需要一个可见的父级。
这个问题不会发生在visibility
或opacity
中,只会发生在display
中。