gpt4 book ai didi

css - CSS 下拉菜单上的 z-index 和 box-shadow 混淆

转载 作者:行者123 更新时间:2023-12-02 01:12:56 25 4
gpt4 key购买 nike

http://jsfiddle.net/XwrZ6/

这显示了一个下拉菜单 (ul.sub-menu),其中框阴影应该隐藏在主菜单栏条 (#main) 后面。我不明白为什么子菜单中的框阴影出现在主导航栏上方 - 两个元素都已定位并设置了 z-index。

(为此,下拉列表将永久显示,很明显,在实时显示时,它仅在父级 li 悬停时显示)。

谢谢。

HTML:

<nav id="main">
<div class="mw">
<div class="menu-main-menu-container">
<ul>
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a></li>
<li><a href="#">Item 4</a>
<ul class="sub-menu">
<li><a href="#">Sub 1</a></li>
<li><a href="#">Sub 2</a></li>
<li><a href="#">Sub 3</a></li>
<li><a href="#">Sub 4</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>

CSS:

/* main nav */
nav#main {
height: 40px;
background: #fff;
-webkit-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.2);
box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.2);
z-index: 2;
position: relative;
}
nav#main ul li {
float: left;
position: relative;
display: block;
height: 28px;
padding: 12px 20px 0;
font-size: 0.8em;
background: url( img/nav-pipe.gif ) no-repeat right bottom;
}
nav#main li:first-child {
padding-left: 0px;
}
nav#main a {
color: #6c6c6c;
font-weight: bold;
}
nav#main a:hover,
nav#main li.active-menu-item a {
color: #efa933;
}
/* dropdowns */
nav#main li:hover ul.sub-menu {
display: block;
}
nav#main ul.sub-menu {
position: absolute;
left: 0px;
top: 40px;
background: #fff;
padding: 10px 10px 0;
-webkit-border-radius: 0px 0px 5px 5px;
border-radius: 0px 0px 5px 5px;
-webkit-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.2);
box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.2);
z-index: 1;
}
nav#main ul.sub-menu li {
float: none;
background: none;
width: 140px;
padding: 0px;
}

最佳答案

将子菜单的 z-index 设置为 -1,然后为根 UL 设置一个 z-index:

http://jsfiddle.net/XwrZ6/2/

<nav id="main">
<div class="mw">
<div class="menu-main-menu-container">
<ul id="root-menu">
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a></li>
<li><a href="#">Item 4</a>
<ul class="sub-menu">
<li><a href="#">Sub 1</a></li>
<li><a href="#">Sub 2</a></li>
<li><a href="#">Sub 3</a></li>
<li><a href="#">Sub 4</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>

nav#main {
height: 40px;
background: #fff;
-webkit-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.2);
box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.2);
position: relative;
}
#root-menu {
z-index: 999;
}

nav#main ul.sub-menu {
position: absolute;
left: 0px;
top: 40px;
background: #fff;
padding: 10px 10px 0;
-webkit-border-radius: 0px 0px 5px 5px;
border-radius: 0px 0px 5px 5px;
-webkit-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.2);
box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.2);
z-index: -1;
}

关于css - CSS 下拉菜单上的 z-index 和 box-shadow 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15140297/

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