Html 如何使用定位和CSS在下拉菜单上显示子菜单?
我有这个简单的导航菜单为我的设计。但问题是我不能在悬停时显示子菜单。有什么办法解决这个问题吗?还是我的CSS缺少一些样式Html 如何使用定位和CSS在下拉菜单上显示子菜单?,html,css,Html,Css,我有这个简单的导航菜单为我的设计。但问题是我不能在悬停时显示子菜单。有什么办法解决这个问题吗?还是我的CSS缺少一些样式 nav ul{列表样式类型:无;溢出:隐藏;背景:#000;位置:相对;} 导航li{浮动:左;} 导航li>a{填充:15px 15px;显示:内联块;文本装饰:无;颜色:白色;文本对齐:中心;} 导航li>a:hover{背景:紫色;} 导航ul{位置:绝对;背景:绿色;顶部:100%;} 导航ulli>a:hover{color:red;} 样品UL
nav ul{列表样式类型:无;溢出:隐藏;背景:#000;位置:相对;}
导航li{浮动:左;}
导航li>a{填充:15px 15px;显示:内联块;文本装饰:无;颜色:白色;文本对齐:中心;}
导航li>a:hover{背景:紫色;}
导航ul{位置:绝对;背景:绿色;顶部:100%;}
导航ulli>a:hover{color:red;}
样品UL
nav-ul{
列表样式类型:无;
溢出:隐藏;
背景:#000;
位置:相对位置;
}
李海军{
浮动:左;
}
导航李>a{
填充:15px 15px;
显示:内联块;
文字装饰:无;
颜色:白色;
文本对齐:居中;
}
导航李>a:悬停{
背景:紫罗兰色;
}
导航ul{
背景:绿色;
最高:100%;
}
nav ul li a+ul{
显示:无;
}
导航ul li a:悬停+ul{
显示:块;
}
.子菜单:悬停{
显示:块;
}
样品UL
-
试试这个。你可以从中学习
保险商实验室{
列表样式类型:无;
保证金:0;
填充:0;
溢出:隐藏;
背景色:#333;
}
李{
浮动:左;
}
李安,.dropbtn{
显示:内联块;
颜色:白色;
文本对齐:居中;
填充:14px 16px;
文字装饰:无;
}
li a:悬停,.下拉:悬停.dropbtn{
背景色:红色;
}
li.下拉列表{
显示:内联块;
}
.下拉内容{
显示:无;
位置:绝对位置;
背景色:#f9f9f9;
最小宽度:160px;
盒影:0px 8px 16px 0px rgba(0,0,0,0.2);
z指数:1;
}
.下拉内容a{
颜色:黑色;
填充:12px 16px;
文字装饰:无;
显示:块;
文本对齐:左对齐;
}
.下拉内容a:悬停{背景色:#f1f1}
.下拉:悬停.下拉内容{
显示:块;
}
-
导航栏中的下拉菜单
将鼠标悬停在“下拉”链接上以查看下拉菜单
您的代码中有很多错误。最关键的是子菜单容器上的top:100%
,它将其移出可见区域
除此之外,将子菜单标题li
定义为position:relative
,子菜单ul
本身在默认情况下display:none
和悬停display:block
,这一点很重要。并将子菜单容器放入用作其标题的li
。请参见下面的我的代码:
nav-ul{
列表样式类型:无;
背景:#000;
}
李海军{
显示:内联块;
位置:相对位置;
}
导航李>a{
填充:15px 15px;
显示:内联块;
文字装饰:无;
颜色:白色;
文本对齐:居中;
}
导航李>a:悬停{
背景:紫罗兰色;
}
nav ul li ul{
显示:无;
位置:绝对位置;
顶部:45px;
左:0px;
宽度:100px;
溢出:可见;
填充:0;
}
导航ulli:悬停ul{
显示:块;
}
李国宝{
背景:绿色;
显示:块;
}
导航ulli>a:悬停{
颜色:红色;
}
样品UL
-
希望这对您有所帮助。可能的副本
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>sample UL</title>
<style media="screen">
</style>
</head>
<body>
<nav class="cf">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Menu 1</a>
<ul class="submenu">
<li><a href="#">submenu 1</a></li>
<li><a href="#">submenu 2</a></li>
</ul></li>
</ul>
</nav>
</body>
</html>
.cf:before, .cf:after {
content:"";
display:table;
}
.cf:after {
clear:both;
}
.cf {
zoom:1;
}
nav {
background: #333A31;
height: 2.3em;
}
ul, li {
margin: 0;
padding: 0;
list-style: none;
float: left;
}
ul {
background: #D5333C;
height: 2em;
width: 100%;
}
li {
position: relative;
}
li a {
display: block;
line-height: 2em;
padding: 0 1em;
color: white;
text-decoration: none;
}
li a:hover {
background: #9155311;
height: 2em;
padding-top: .3em;
position: relative;
top: -.3em;
border-radius: .3em .3em 0 0;
}
.current, a:hover.current {
background: #AD9B7F;
color: #eee;
padding-top: .3em;
border-radius: .3em .3em 0 0;
position: relative;
top: -.3em;
border-bottom: .3em solid #917F63;
cursor: default;
}
/*dropdown menu styles*/
ul.submenu {
float: none;
background: #916A31;
width: auto;
height: auto;
position: absolute;
top: 2em;
left: -9000em;
}
ul.submenu li {
float: none;
}
nav li:hover ul {
left: 0;
}
ul.submenu li a {
border-bottom: 1px solid white;
padding: .2em 1em;
white-space: nowrap;
}
ul.submenu li:last-child a {
border-bottom: none;
}
ul.submenu li a:hover {
background: #D5973C;
height: 2em;
padding-top: .2em;
top: 0;
border-radius: 0;
}