嗨我有一个带有下拉菜单的网站,由于某种原因,它的项目是水平堆叠的。 HTML就像这样
<li id="menuitem">a</li>
<ul id="dropdown">
<li id="dropdownelement">b</li>
</ul>
除非悬停,否则CSS会将ul设置为隐藏。和李元素相对
答案 0 :(得分:2)
您的实施存在一些问题。
您可以测试此demo并查看这是否是所需的行为。
您应该将ul ul
元素设置为absolute
,将ul li
设置为relative
,并设置inline-block
显示道具。
然后,将#navbar ul li:hover ul
更改为:
#navbar ul li:hover ul {
display: block;
position: absolute;
left: 0;
padding: 0;
}
这会将嵌套下拉列表设置为位于父级下方并与左侧对齐。
此外,您在标记中使用了两次#accountDropDownElement
ID。我在演示中将其替换为类,因为id
必须是唯一的!
这是完整的代码:
#navbar ul {
position: relative;
display: inline-table;
list-style-type: none;
width: 965px;
}
#navbar ul:after {
content: "";
clear: both;
display: block;
}
#navbar ul ul {
display: none;
position: absolute;
top: 66px;
left: 0;
padding: 0;
}
#navbar ul ul li {
float: none;
position: relative;
}
#navbar ul li {
float: left;
padding: 0 10px;
border-radius: 25px;
}
#navbar ul li:hover > a {
border: 1px rgb(204, 255, 102) solid;
background-color: rgb(204, 255, 102);
box-shadow: none;
}
#navbar ul li:hover ul {
display: block;
position: absolute;
left: 0;
padding: 0;
}
#navbar ul li:hover ul li {
float: none;
}
#navbar ul li a {
border-radius: 25px;
border: 1px rgb(57, 232, 38) solid;
background-color: rgb(57, 232, 38);
box-shadow: 0px 3px 3px rgba(0,0,0,0.5);
color: white;
display: block;
float: left;
font-family: "micross";
font-size: 30px;
padding: 15px;
text-decoration: none;
}
#navbar ul li a:hover {
border: 1px rgb(204, 255, 102) solid;
background-color: rgb(204, 255, 102);
box-shadow: none;
}
#accountButton:hover {
cursor: pointer;
}
#accountDropDownImage {
float: left;
}
.accountDropDownElement {
width: 100px;
background-color: rgb(57, 232, 38);
color: white;
font-size: 20px;
margin: 0;
padding-left: 20px;
padding-right: 20px;
padding-top: 10px;
padding-bottom: 10px;
}
<link rel="stylesheet" href="CSS/style.css">
<link rel="stylesheet" href="CSS/navbar.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<div id="navbar">
<ul id="navbarList">
<li id="homeButton"><a href="home.php">Home</a></li>
<li id="blogButton"><a href="blog.php">Blog</a></li>
<li id="downloadsButton"><a href="downloads.php">Downloads</a></li>
<li id="managerButton"><a href="manager.php">Manager</a></li>
<li id="accountButton"><a id='accountAButton' href='manager.php'>Luke</a>
<ul id='dropDownList'>
<li><p class='accountDropDownElement'>Logout</p></li>
<li><p class='accountDropDownElement'>Login</p></li>
</ul>
</li>
</ul>
</div>
答案 1 :(得分:0)
如果你将css的宽度调整为65而不是965,你会看到左边的链接堆栈,因为我假设你想要的。