【发布时间】:2012-07-14 21:25:46
【问题描述】:
当父元素悬停时,我试图暂停子元素的显示。
HTML:
<span>
<div>This Is The Child</div>
Some Text in the span
</span>
CSS:
span {
position: relative;
}
span div {
display: none;
width: 0px;
opacity: 0;
transition: width 5s;
-webkit-transition: width 5s;
transition: opacity 5s;
-webkit-transition: opacity 5s;
}
span:hover div {
display: inline-block;
width: 150px;
opacity: 1;
}
截至目前,当跨度悬停时,div 在显示之前没有延迟。我将如何解决它以便暂停?
在这里提琴:http://jsfiddle.net/SReject/vmvdK/
一些注意事项:
我最初试图转换显示,但正如 Edward 指出的那样,这是不可能的,并且已经尝试过上述方法,但也不起作用
已解决
看起来“过渡到”样式中的任何“显示”属性都会阻止任何过渡动画的发生。要解决这个问题。我将要显示的孩子的宽度设置为 0px 并让它完全透明。然后在“过渡到”样式中,设置正确的宽度,并使 div 实心:
HTML:
<span>
<div>This Is The Child</div>
Some Text in the span
</span>
CSS:
span {
position: relative;
}
span div {
position: absolute;
width: 0px;
opacity: 0;
transition: opacity 5s;
-webkit-transition: opacity 5s;
}
span:hover div {
width: 150px;
opacity: 1;
}
【问题讨论】:
-
为什么不反过来
<div><span>This Is The Child</span>Some Text in the DIV</div>? ...它在语义上更正确。 -
这是一个GM脚本,span由GM脚本修改的站点创建。我想为显示的跨度创建一个悬停菜单
标签: css parent-child css-transitions