html - CSS下拉菜单不起作用
问题描述
我正在尝试创建下拉导航菜单。
我发现的每篇文章和视频都显示了我正在做的同样的事情,但似乎无法做到正确。
系统和表单项应该有一个下拉列表。我知道我可以使用 CSS 类作为另一种选择,但我想以这种方式工作。
该页面的 HTML 和 CSS 如下所示。
#MenuBar {
margin-top: 15px;
}
#MenuBar ul {
list-style: none;
float: left;
}
#MenuBar ul a {
display: block;
color: #333;
text-decoration: none;
padding: 0px 15px;
line-height: 32px;
}
#MenuBar ul li {
position: relative;
float: left;
}
#MenuBar ul li:hover {
background: #f6f6;
}
/*Dropdown menus*/
#MenuBar ul ul {
display: none;
position: absolute;
}
#MenuBar ul ul li {
width: 150px;
}
#MenuBar ul ul a {
line-height: 120%;
padding: 10px 15px;
}
/*Dropdown menu items*/
#MenuBar ul li:hover ul {
display: block;
}
<nav id="MenuBar">
<ul>
<li><a href="#">Systems</a></li>
<ul>
<li><a href="#">Email</a></li>
<li><a href="#">Payroll</a></li>
<li><a href="#">Finance</a></li>
</ul>
<li><a href="#">Staff</a></li>
<li><a href="#">Forms</a></li>
<ul>
<li><a href="#">IT</a></li>
<li><a href="#">HR</a></li>
<li><a href="#">Facilities</a></li>
</ul>
<li><a href="#">Events</a></li>
</ul>
</nav>
解决方案
只需将ul
子项插入li
父项内...
以供float
左使用padding-left: 0px;
#MenuBar{
margin-top:15px;
}
#MenuBar ul{
list-style:none;
float:left;
}
#MenuBar ul a{
display:block;
color:#333;
text-decoration:none;
padding:0px 15px;
line-height:32px;
}
#MenuBar ul li{
position:relative;
float:left;
}
#MenuBar ul li:hover{
background:#f6f6;
}
#MenuBar ul li:hover ul{
display:block;
}
/*Dropdown menus*/
#MenuBar ul ul{
display: none;
position:absolute;
}
#MenuBar ul ul li{
width:150px;
}
#MenuBar ul ul a{
line-height:120%;
padding: 10px 15px;
}
/*Dropdown menu items*/
#MenuBar ul li:hover ul{
display:block;
padding-left: 0px;
}
<nav id="MenuBar">
<ul>
<li><a href="#">Systems</a></li>
<ul>
<li><a href="#">Email</a></li>
<li><a href="#">Payroll</a></li>
<li><a href="#">Finance</a></li>
</ul>
<li><a href="#">Staff</a></li>
<li><a href="#">Forms</a>
<ul>
<li><a href="#">IT</a></li>
<li><a href="#">HR</a></li>
<li><a href="#">Facilities</a></li>
</ul>
</li>
<li><a href="#">Events</a></li>
</ul>
</nav>
推荐阅读
- mysql - 如何在 mysql 中编写对 hasManyThrough 关系的查询?
- android - 嵌套导航图 Android 中是否可以有动态目的地?
- javascript - Javascript 游戏的开始屏幕/可点击的播放按钮
- c# - 在 C# 代码中访问 MYSQL 中的存储过程返回的值
- c++11 - 如何正确使用dockcross进行交叉编译?
- angularjs - 如何在没有nodejs的情况下从angularjs端保护我的数据库访问
- windows - Get-Counter 命令在 Powershell Core 中不起作用
- ajax - 成功后从 php 重定向 Ajax
- java - Spring hibarnate 错误:通过 JDBC 语句执行 DDL 时出错
- typescript - Symbol.iterator 的语法很难