我有一個下拉菜單(#dropDownMenu),當我的網站的「#headerNav」懸停時出現。如果我將#dropDownMenu(最初隱藏着display:none,直到鏈接懸停)放在#headerNav div上,它才能正常工作。如何正確使用z-index控制我的div的排序順序?
這樣可以防止在光標出現時沒有快速移動到下拉菜單時導致的輕微閃爍。通過在#headerNav上稍微重疊#dropDownMenu,這使得它看起來像#headerNav仍然在光標實際上在#dropDownMenu中時被懸停。
無論如何,我現在想隱藏頭部或#headerContent後面的#dropDownMenu的重疊部分,所以一切都看起來整潔,所以下拉菜單實際上看起來像它出現在#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>
實施例和修正將不勝感激。
親切的問候
這就是我的確切設置。我將HAML轉換爲html並更新了我的問題。如果iI使用下拉菜單,我不需要調整寬度的大小,這也不會成爲問題。調整寬度可能會弄亂其他東西,這就是爲什麼我必須使用絕對定位。 – LondonGuy 2012-03-25 12:27:13