我有一个下拉菜单(#dropDownMenu),当我的网站的“ #headerNav”悬停在上方时会出现。如果我将#dropDownMenu(最初以display:none隐藏,直到链接悬停在上面)稍微靠在#headerNav div上,则它可以正常工作。
如果光标没有足够快地移到出现在下拉菜单上,这将停止轻微闪烁。通过将#dropDownMenu稍微重叠在#headerNav上,这使得当光标实际上在#dropDownMenu中时,似乎#headerNav仍在悬停。
无论如何,我现在想将#dropDownMenu的重叠部分隐藏在header或#headerContent后面,以便所有内容看起来都更加整洁,因此下拉菜单实际上看起来像是出现在#headerNav下面。
我尝试了不同的z-index设置,但似乎都无法正常工作,这很烦人。当我将#headerNav:hover #dropDownMenu的z-index设置为-1时,它按预期隐藏在所有内容的后面。
如果我将header或#headerContent的z-index设置为高于“ #headerNav:hover #dropDownMenu”的数字,则将鼠标悬停在#headerNav上。我仍然可以看到#dropDownMenu重叠。
CSS:
header {
position:fixed;
top:0;
right:0;
left:0;
height: 40px;
z-index:20;
}
#headerContent {
background-color: $main-background-color;
width: $site-width;
margin:0px auto 0px auto;
height:40px;
}
#headerNav {
float:right;
height:37px;
width:auto;
margin-top:1px;
background-color:#464646;
color:#cccccc;
}
#headerNav:hover {
background-color:#626262;
cursor:pointer;
color: white;
}
#headerNav:hover #dropDownMenu {
position:absolute;
background-color:white;
border:1px solid gray;
top:35px;
right:-39px;
height:300px;
width:200px;
font-weight:bold;
color:gray;
display:block !important;
z-index:1;
}
ul li {
float:right;
}
#photoThumbnail img {
height:28px;
width:31px;
padding-top:5px;
padding-right:8px;
-moz-border-radius: 1px 12px 1px 12px;
border-radius: 1px 12px 1px 12px;
}
#currentUser {
position:relative;
padding-top:12px;
padding-left:12px;
padding-right:6px;
}
#siteNavigation {
display:none;
}
的HTML
<header>
<div id='headerContent'>
<div id='LogoHolder'>
</div>
<nav id='headerNav'>
<ul>
<li id='photoThumbnail'></li>
<li id='currentUser'>
<ul id='dropDownMenu'>
<li>link1</li>
<li>link2</li>
<li>link3</li>
<li>link4</li>
<li>link5</li>
<li>link6</li>
</ul>
</li>
</ul>
</nav>
</div>
</header>
示例和更正将不胜感激。
亲切的问候
最佳答案
如果您的z-index设置被忽略,则可能需要添加position属性,将其设置为relative或任何需要的值。我很确定,如果未设置position属性,则会忽略z-index。