[英]How to make a nested sub menu on horizontal navigation bar vertical?
因此,我创建了一个水平导航栏,但我希望将子菜单悬停在上方时垂直显示,但无论如何,它仍会水平显示。
这是我的代码的JSFiddle: https ://jsfiddle.net/ma85nbgx/
下面是我的HTML和CSS。
HTML
<div class="nav"> <!-- Start of Nav Bar -->
<ul>
<li class="home"><a href="#">HOME</a></li>
<li class="aboutus"><a href="#">ABOUT US</a></li>
<li class="services"><a href="#">SERVICES</a>
<ul>
<li class="programs"><a href="#">PROGRAMS</a></li>
<li class="events"><a href="#">EVENTS</a></li>
</ul>
</li>
<li class="resources"><a href="#">RESOURCES</a></li>
<li class="getinvolved"><a href="#">GET INVOLVED</a></li>
<li class="contactus"><a href="#">CONTACT US</a></li>
</ul>
</div>
CSS
.nav ul {
list-style: none;
text-align: center;
padding: 0;
margin: 0;
}
.nav ul li {
font-family: 'Roboto', sans-serif;
border-bottom: none;
height: 86px;
line-height: 86px;
font-size: 14px;
display: inline-block;
float:left;
margin: 0 auto;
}
.nav ul li a {
text-decoration: none;
color:#000000;
display: block;
transition: .3s background-color;
padding:0 24px;
}
.nav ul li a:hover {
background-color: #5c89c7;
color:#FFFFFF;
}
.nav a {
border-bottom:none;
}
.nav li ul {
position:absolute;
display:none;
width:inherit;
}
.nav li:hover ul {
display:block;
}
.nav ul li ul li {
display: block;
}
我经过的大多数网站或答案都说将display:block放在嵌套的子菜单上,但是我尝试了一下,但仍然水平显示,任何帮助将不胜感激!
尝试这样的事情。 添加以下CSS
.dropdown li{
float: none !important;
}
像这样在子菜单UL
添加.dropdown
类。
<ul class="dropdown">
我已经更改了您的代码一点点尝试此答案,我已经删除了嵌套的li float:left
,请检查CSS的下面我添加了新行
.nav ul { list-style: none; text-align: center; padding: 0; margin: 0; } .nav ul li { font-family: 'Roboto', sans-serif; border-bottom: none; height: 86px; line-height: 86px; font-size: 14px; display: inline-block; float:left; margin: 0 auto; } .nav ul li a { text-decoration: none; color:#000000; display: block; transition: .3s background-color; padding:0 24px; } .nav ul li a:hover { background-color: #5c89c7; color:#FFFFFF; } .nav a { border-bottom:none; } .nav li ul { position:absolute; display:none; width:inherit; text-align:left; } .nav li:hover ul { display:block; } .nav ul li ul li { display: block; float:none !important; /* newly added */ height:auto; /* newly added */ line-height:34px; /* newly added */ }
<!doctype html> <html> <head> <meta charset="utf-8"> <title>Untitled Document</title> </head> <body> <div class="nav"> <!-- Start of Nav Bar --> <ul> <li class="home"><a href="#">HOME</a></li> <li class="aboutus"><a href="#">ABOUT US</a></li> <li class="services"><a href="#">SERVICES</a> <ul> <li class="programs"><a href="#">PROGRAMS</a></li> <li class="events"><a href="#">EVENTS</a></li> </ul> </li> <li class="resources"><a href="#">RESOURCES</a></li> <li class="getinvolved"><a href="#">GET INVOLVED</a></li> <li class="contactus"><a href="#">CONTACT US</a></li> </ul> </div> </body> </html>
将display flex和flex-direction放在子菜单本身的包装上。
看一下这个
nav ul { list-style: none; text-align: center; padding: 0; margin: 0; width:100%; display:flex; flex-direction:row; flex-wrap:wrap; } nav ul li { font-family: 'Roboto', sans-serif; border-bottom: none; height: 86px; line-height: 86px; font-size: 14px; margin: 0 auto; position:relative; } nav ul li a { text-decoration: none; color:#000000; display: block; transition: .3s background-color; padding:0 24px; } nav ul li a:hover { background-color: #5c89c7; color:#FFFFFF; } nav a { border-bottom:none; } nav .withSubMenu ul{ display: none; } .withSubMenu:hover ul { display:flex; width:100%; flex-direction:column; }
<nav> <!-- Start of Nav Bar --> <ul> <li class="home"><a href="#">HOME</a></li> <li class="aboutus"><a href="#">ABOUT US</a></li> <li class="services withSubMenu"><a href="#">SERVICES</a> <ul> <li class="programs"><a href="#">PROGRAMS</a></li> <li class="events"><a href="#">EVENTS</a></li> </ul> </li> <li class="resources"><a href="#">RESOURCES</a></li> <li class="getinvolved"><a href="#">GET INVOLVED</a></li> <li class="contactus"><a href="#">CONTACT US</a></li> </ul> </nav>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.