我想以下拉形式将子菜单添加到我现有的导航菜单中。以下是我现有的HTML和CSS导航菜单代码。当用户将鼠标悬停在它上面时,我希望它下拉。这是当用户将鼠标移到元素上时出现的下拉菜单。请不要让我引用链接,只希望您修改我的代码。欧比
.menu {
border-bottom: 5px solid #00cc99;
}
.toggleMenu {
display: none;
background: #666;
padding: 10px 15px;
width: 100%;
color: #fff;
}
.top-nav{
background: #339933;
}
.nav {
list-style: none;
*zoom: 1;
width:79%;
float:left;
}
.nav:before,
.nav:after {
content: " ";
display: table;
}
.nav:after {
clear: both;
}
.nav ul {
list-style: none;
width: 9em;
}
.nav a {
color: #FFF;
font-size: 17px;
}
.nav li.active> a, .nav li> a:hover {
color:#FA6210;
}
.nav li {
position: relative;
padding: 10px 70.5px;
font-family: 'Open Sans', sans-serif;
}
.nav > li {
float: left;
}
.nav > li > a {
display: block;
}
.nav li ul {
position: absolute;
left: -9999px;
}
.nav > li.hover > ul {
left: 0;
}
.nav li li.hover ul {
left: 100%;
top: 0;
-webkit-transition: background .2s linear;
-moz-transition: background .2s linear;
-ms-transition: background .2s linear;
-o-transition: background .2s linear;
transition: background .2s linear;
}
<div class="menu">
<div class="wrap">
<div class="top-nav">
<ul class="nav">
<li class="active"><a href="index.html">Home</a></li>
<li><a href="about.html">About</a></li>
<li><a href="gallery.html">Gallery</a></li>
<li><a href="blog.html">Blog</a></li>
<li><a href="contact.html">Contact</a></li>
<div class="clear"></div>
</ul>
</div>
</div>
</div>
答案 0 :(得分:0)
检查一下。我注意到您正在尝试通过前后移动菜单来显示此内容。 您可以使用“显示:无;”实现您正在执行的操作,并将其设置为“ display:block;”当父li元素悬停时。
这是您的代码-我只注释了一些内容,并添加了其他内容。
.menu {
border-bottom: 5px solid #00cc99;
}
.toggleMenu {
display: none;
background: #666;
padding: 10px 15px;
width: 100%;
color: #fff;
}
.top-nav {
background: #339933;
}
.nav {
list-style: none;
*zoom: 1;
width: 79%;
float: left;
}
.nav:before,
.nav:after {
content: " ";
display: table;
}
.nav:after {
clear: both;
}
.nav ul {
list-style: none;
width: 9em;
}
.nav a {
color: #FFF;
font-size: 17px;
}
.nav li.active>a,
.nav li>a:hover {
color: #FA6210;
}
.nav li {
position: relative;
/* padding: 10px 70.5px; */
font-family: 'Open Sans', sans-serif;
}
.nav>li {
float: left;
}
.nav>li>a {
display: block;
}
.nav li ul {
position: absolute;
/* left: -9999px; */
}
.nav>li.hover>ul {
left: 0;
}
.nav li li.hover ul {
left: 100%;
top: 0;
-webkit-transition: background .2s linear;
-moz-transition: background .2s linear;
-ms-transition: background .2s linear;
-o-transition: background .2s linear;
transition: background .2s linear;
}
.hidden {
display: none;
}
ul.nav li:hover .hidden {
display: block;
}
<div class="menu">
<div class="wrap">
<div class="top-nav">
<ul class="nav">
<li class="active"><a href="index.html">Home</a>
<div class="hidden">
<ul>
<li>Sample item #1</li>
<li>Sample item #2</li>
<li>Sample item #3</li>
</ul>
</div>
</li>
<li><a href="about.html">About</a></li>
<li><a href="gallery.html">Gallery</a></li>
<li><a href="blog.html">Blog</a></li>
<li><a href="contact.html">Contact</a></li>
<div class="clear"></div>
</ul>
</div>
</div>
</div>
</div>
答案 1 :(得分:-1)
喜欢吗?
.menu {
border-bottom: 5px solid #00cc99;
}
.toggleMenu {
display: none;
background: #666;
padding: 10px 15px;
width: 100%;
color: #fff;
}
.top-nav{
background: #339933;
}
.nav {
list-style: none;
*zoom: 1;
width:79%;
float:left;
}
.nav:before,
.nav:after {
content: " ";
display: table;
}
.nav:after {
clear: both;
}
.nav ul {
list-style: none;
width: 9em;
}
.nav a {
color: #FFF;
font-size: 17px;
}
.nav li.active> a, .nav li> a:hover {
color:#FA6210;
}
.nav li {
position: relative;
padding: 10px 70.5px;
font-family: 'Open Sans', sans-serif;
}
.nav > li {
float: left;
}
.nav > li > a {
display: block;
}
.nav li ul {
position: absolute;
left: -9999px;
}
.nav > li.hover > ul {
left: 0;
}
.nav li li.hover ul {
left: 100%;
top: 0;
-webkit-transition: background .2s linear;
-moz-transition: background .2s linear;
-ms-transition: background .2s linear;
-o-transition: background .2s linear;
transition: background .2s linear;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
padding: 12px 16px;
z-index: 1;
}
.active:hover .dropdown-content {
display: block;
}
<div class="menu">
<div class="wrap">
<div class="top-nav">
<ul class="nav">
<li class="active"><a href="index.html">Home</a>
<div class="dropdown-content">
<p>Hello World!</p>
</div>
</li>
<li><a href="about.html">About</a></li>
<li><a href="gallery.html">Gallery</a></li>
<li><a href="blog.html">Blog</a></li>
<li><a href="contact.html">Contact</a></li>
<div class="clear"></div>
</ul>
</div>
</div>
</div>
答案 2 :(得分:-1)
根据您的原始CSS,您尝试在父li:hover
上打开下拉菜单,但是有一个错字(li.hover
)表示当父<li>
包含类.hover
。
我修改了HTML以引入子菜单,下面是HTML和CSS的导航部分。
注意:一旦设置了用于导航的基本HTML,就可以继续使用任何样式和链接格式。
提琴:https://jsfiddle.net/2co53ts8/
.nav {
display: flex;
padding: 0;
}
.submenu {
position: absolute;
left: 0;
display: none;
}
.nav>li {
list-style: none;
position: relative;
padding: 10px;
}
.nav>li:hover ul {
display: block;
position: absolute;
left: 0;
padding-left: 0;
width: 300px;
/*define dropdown width*/
}
.nav>li:hover ul li {
list-style: none;
}
<ul class="nav">
<li class="active"><a href="#">Home</a>
<ul class="submenu">
<li><a href="#">Sub Menu 1</a></li>
<li><a href="#">Sub Menu 2</a></li>
</ul>
</li>
<li><a href="about.html">About</a>
<ul class="submenu">
<li><a href="#">Sub Menu</a></li>
</ul>
</li>
<li><a href="about.html">About</a>
<ul class="submenu">
<li><a href="#">Sub Menu</a></li>
</ul>
</li>
<li><a href="gallery.html">Gallery</a>
<ul class="submenu">
<li><a href="#">Sub Menu</a></li>
</ul>
</li>
<li><a href="blog.html">Blog</a>
<ul class="submenu">
<li><a href="#">Sub Menu</a></li>
</ul>
</li>
<li><a href="contact.html">Contact</a>
<ul class="submenu">
<li><a href="#">Sub Menu</a></li>
</ul>
</li>
</ul>