我有一个菜单,当我将鼠标悬停在菜单项上时,会出现一个子菜单。问题是,如果我把鼠标移到通常会出现子菜单的区域(当我悬停在菜单上时,屏幕上被子菜单覆盖的区域),子菜单就会出现。换句话说,即使我没有悬停在菜单项上,它也会出现。我想这可能是由于一些z-index问题引起的吗?如果需要更多解释,请告诉我。
作为附注,我也无法将菜单居中对齐,它总是左对齐。
.menu-wrap {
position: fixed;
z-index: 4;
top: 0;
width: 100%;
text-align: left;
background: #10345A;
}
.menu {
width: 100%;
margin: 0px;
text-align: left;
}
.menu li {
margin: 0px;
list-style: none;
}
.menu a {
transition: all linear 0.15s;
color: white;
}
.menu li:hover > a,
.menu .current-item > a {
text-decoration: none;
color: white;
background-color: #FF6600;
}
.menu .arrow {
font-size: 11px;
line-height: 0%;
}
/*----- Top Level -----*/
.menu > ul > li {
float: left;
display: inline-block;
position: relative;
font-size: 19px;
}
.menu > ul > li > a {
padding: 10px 40px;
display: inline-block;
text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.4);
text-decoration: none;
}
.menu > ul > li:hover > a,
.menu > ul > .current-item > a {
background: #10345A;
color: #FF6600;
}
/*----- Bottom Level -----*/
.menu li:hover .sub-menu {
z-index: 1;
opacity: 1;
}
.sub-menu {
width: 300px;
padding: 5px 0px;
position: absolute;
top: 100%;
left: 0px;
z-index: 0;
opacity: 0;
transition: opacity linear 0.15s;
background: gray;
}
.sub-menu li {
display: block;
font-size: 16px;
}
.sub-menu li a {
padding: 10px 30px;
display: block;
text-decoration: none;
}
.sub-menu li a:hover,
.sub-menu .current-item a {
background: #10345A;
color: #FF6600;
}
<div class="menu-wrap">
<nav class="menu">
<ul>
<li><a href="#">Menu 1</a>
</li>
<li>
<a href="#">Menu 2 <span class="arrow">▼</span></a>
<ul class="sub-menu">
<li><a href="#"><span class="arrow">►</span> Submenu 1</a>
</li>
<li><a href="#"><span class="arrow">►</span> Submenu 2</a>
</li>
</ul>
</li>
<li><a href="#">Menu 3 <span class="arrow">▼</span></a>
<ul class="sub-menu">
<li><a href="#"><span class="arrow">►</span> Submenu 3</a>
</li>
<li><a href="#"><span class="arrow">►</span> Submenu 4</a>
</li>
<li><a href="#"><span class="arrow">►</span> Submenu 5</a>
</li>
</ul>
</li>
</ul>
</nav>
</div>