我创建了一个下拉菜单,当它有悬停效果时,菜单打开。然后我向这个菜单添加了元素,当我在它们上创建悬停效果时,其他菜单打开。但是当我想进一步扩展菜单时,我不能使用悬停效果。
正如你在图片中看到的,我可以用鼠标悬停的效果在下拉菜单中显示子菜单,但是在鼠标移动到子菜单之前,它会出现在它下面的元素上。
.navtop>ul {
position: relative;
z-index: 1
}
.navtop>ul>li {
float: left;
border-left: 1px solid #fff;
}
.navtop ul li a {
display: block;
padding: 10px 20px;
color: #ccc
}
.navtop ul li:first-child {
border: none;
}
.navtop>ul>li:hover>ul {
display: block;
}
.navtop>ul>li>ul>li:hover ul {
display: block;
}
.navtop>ul>li>ul>li>ul>li:hover>ul {
display: block;
} // it didn't work.
.navtop>ul>li>ul li {
position: relative;
}
.navtop>ul>li>ul {
display: none;
position: absolute;
background: #333;
}
.navtop>ul>li>ul>li>ul {
display: none;
position: absolute;
left: 100%;
top: 1px;
background: #333
}
.navtop>ul>li>ul>li>ul>li>ul {
display: none;
position: absolute;
left: 100%;
top: 1px;
background: #333
} // it didn't work.
<div class="wrap">
<nav class="navtop">
<ul>
<li><a href="#"><b class="caret"></b>Dropdwown Menus</a>
<ul class="container">
<li><a href="#">Dropdown Menu 1</a>
<ul>
<li><a href="#">Dropdown Submenu 1</a>
<ul>
<li><a href="#">Dropdown Sub menu</a></li>
</ul>
</li>
<li><a href="#">Dropdown Submenu 2</a></li>
<li><a href="#">Dropdown Submenu 3</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="clear"></div>
</nav>
</div>
4条答案
按热度按时间wlp8pajw1#
删除
:hover
中的所有代码段,改用.navtop li:hover>ul {display: block;}
ct2axkht2#
根据此更新您的样式
wko9yo5t3#
这里我把
li
隐藏在li
里面,然后当一个li
悬停时,我直接在它里面显示li
。nbnkbykc4#
这应该有帮助!