我为我的网站创建了一个菜单。第一级菜单很好,但问题在于第二级菜单。我已经将二级菜单从顶部稍微向下放置,所以当我开始向下移动鼠标时,菜单会折叠起来。我希望在不从当前位置移动二级菜单的情况下填补这个空白。
这是一个演示。将鼠标移到“我的个人资料”链接上,然后慢慢将鼠标向下移动到二级菜单。li
结果是由于 parent和 child之间的空间很小,菜单被折叠了ul
。我该如何解决这个错误?
JS:
$(document).ready(function () {
$(".menu nav ul li").hover(function (e) {
$(this).children("ul").slideDown();
}, function (e) {
$(this).children("ul").slideUp();
});
});
HTML:
<header>
<div class="welcome_area">
<p>Welcome, <b><a href="profile.php">Arkam Gadet</a> </b>
</p>
</div>
<div class="menu">
<nav>
<ul>
<li><a href="profile.php">My Profile</a>
<ul>
<li><a href="#">My Questions</a>
</li>
<li style="margin-bottom: 5px;"><a href="#">Settings</a>
</li>
</ul>
</li>
<li><a href="inbox.php">Inbox</a>
</li>
<li><a href="#">Notifications</a>
</li>
</ul>
</nav>
</div>
</header>
CSS:
header {
background-color: #eee;
height: 45px;
box-shadow: 0px 2px 3px 1px #bbb;
}
a {
color: black;
text-decoration: none;
}
h2 {
color: #f79a1d;
}
.welcome_area {
float: left;
margin-left: 5%;
}
.menu {
float: right;
margin-right: 5%;
}
.menu nav > ul {
position: relative;
padding:0px;
}
.menu nav ul li {
display: inline;
padding: 5px;
}
.menu nav ul li a {
padding: 2px;
}
.menu nav ul li a:hover {
background: #eee;
border: 0;
border-radius: 3px;
box-shadow: 0px 0px 2px 1px #000;
}
.menu nav > ul ul {
position: absolute;
left: -30px;
top: 40px;
padding:0px;
width: 150px;
border-radius: 3px;
display: none;
background-color: #eee;
box-shadow: 0px 0px 2px 3px #bbb;
}
.menu nav > ul li > ul li {
display: block;
}