我使用了以下 example尝试创建我自己的下拉菜单。
我试过增加 z-index,但我的问题真的不是子菜单落后于其他内容。相反,当我将鼠标悬停在“登录”上时,滚动条会添加到标题 div 中,我必须使用它们来查看子菜单。
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<link rel="stylesheet" type="text/css" href="test.css">
</head>
<body>
<div id="header">
<div id="logo">
[ BETA ]
</div>
<div id="menu_container">
<div id="menu">
<ul>
<li><a href=#>Login</a>
<ul>
<li><a href=#>A</a></li>
<li><a href=#>B</a></li>
<li><a href=#>C</a></li>
</ul>
</li>
<li><a href=#>Register</a></li>
<li><a href=#>Events</a></li>
<li><a href=#>About</a></li>
</ul>
</div>
</div>
</div>
</body>
</html>
和
#header {
background: black;
color: white;
padding: 10px 10px 10px 10px;
overflow: auto;
position: relative;
z-index: 999;
}
#logo {
float: left;
color: #ff8100;
}
#menu_container {
float: right;
}
#menu ul {
list-style: none;
position: relative;
float: left;
margin: 0;
padding: 0;
z-index: 999;
}
#menu ul a {
display: block;
text-decoration: none;
}
#menu ul li {
position: relative;
float: left;
margin: 0;
padding: 0;
}
#menu ul li.current-menu-item {
background: #000000;
}
#menu ul li:hover {
background: green;
}
#menu ul ul {
display: none;
position: absolute;
top: 100%;
left: 0;
background:#ffffff;
padding: 0;
}
#menu ul ul li {
float: none;
width:200px;
}
#menu ul ul a {
line-height: 120%;
padding: 10px 15px;
}
#menu ul ul ul {
top: 0;
left: 100%;
}
#menu ul li:hover > ul {
display: block;
}
我需要做什么才能让子菜单看起来从标题 div 垂下并覆盖在内容主体的其余部分?谢谢,非常感谢您的帮助。
最佳答案
您需要从 .header
中删除 overflow: auto
并改用 clearfix:
#header {
background: black;
color: white;
padding: 10px 10px 10px 10px;
/*overflow: auto;*/ //remove
position: relative;
z-index: 999;
}
#header:after{
content: "";
display: block;
clear: both;
}
overflow:auto
被添加以清除 float 元素(我更喜欢 overflow:hidden
)但它也做的是 overflow hidden 并添加滚动条以查看更多的。通常这是一个很好的方法,除非在这种情况下您实际上希望子导航溢出标题。
关于html - CSS 下拉菜单在悬停时将滚动条添加到标题 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27934366/