gpt4 book ai didi

debugging - CSS3 :hover animation has z-index bug

转载 作者:技术小花猫 更新时间:2023-10-29 11:20:55 25 4
gpt4 key购买 nike

好的,所以我有一个空的 <span>嵌套在我的 <li> 旁边的无序列表。该跨度包含应该出现在 :hover 上的背景图像.问题是在动画转换时,z-index 是错误的,<span>将自己堆叠在 <a> 前面DOM 中它之前的元素。但是,一旦动画完成,堆叠顺序就会自行纠正。结果是效果出现视觉上突然的“快照”,并且链接在 CSS3 过渡期间变得不可点击。

任何人都可以分解在 DOM 级别发生的事情吗?我该如何解决这个问题?

您可以在此处查看演示该问题的工作示例:http://jsfiddle.net/qZkfw/1/

我的 HTML

        <div id="nav">
<ul id="nav-main">
<li><a href="#">Home</a><span></span></li>
<li><a href="#">About</a><span></span></li>
<li><a href="#">Get Fit</a><span></span>
<ul class="nav-secondary">
<li><a href="#">Exercise Library</a></li>
<li><a href="#">Find An Instructor</a></li>
<li><a href="#">Fitness Tools</a></li>
</ul>
</li>
<li><a href="#">Find An Instructor</a><span></span></li>
<li><a href="#">Get Certified</a><span></span></li>
</ul>
</div>

我的 CSS

#nav-main li {
margin:0;
padding:5px;
position: relative;
display: block;
float: left;
margin-left: 10px;
}

#nav-main li a {
color: #97dd6e;
font-size: 1.1em;
text-decoration: none;
text-align: center;
margin-right: -7px;
line-height: 19px;
z-index: 99;
}

#nav-main li span {
height: 28px;
background: transparent url('/images/application/bg_nav_active_repeat.png') repeat-x top center;
display: block;
margin: -22px -5px 0 2px;
padding: 3px 0 0 0;
z-index: 98;

opacity: 0;
visibility: hidden;
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
}
#nav-main li:hover span {
opacity: 1;
visibility: visible;
-webkit-transition: all 0.4s ease-in-out;
-moz-transition: all 0.4s ease-in-out;
-o-transition: all 0.4s ease-in-out;
transition: all 0.4s ease-in-out;

}
#nav-main li span:before, #nav-main li span:after {
content: '';
height: 28px;
width: 7px;
display: block;
background: transparent url('/images/application/bg_nav_active_before.png') no-repeat left top;
position: absolute;
top: 2px;
left: 0;
z-index: 999;
}
#nav-main li span:after {
background: transparent url('/images/application/bg_nav_active_after.png') no-repeat right top;
left: 100%;
}

最佳答案

添加position:relative; z-index: -1;#nav-main li span.

<德尔> Updated jsfiddle .

编辑:

我想通了。

静态元素不服从z-index,所以需要在#nav-main li a中加入position:relative;

Updated jsfiddle .

关于debugging - CSS3 :hover animation has z-index bug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8283783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com