我真的不知道如何解决这个问题。我正在使用 Bootstrap 3,并使用额外的自定义 CSS 在顶部添加子菜单功能。
二级菜单项仅在子菜单元素可视部分可见,右侧部分不可见:
.dropdown-submenu {
position: relative;
z-index: 9999999;
}
.dropdown-submenu>.dropdown-menu {
top: 0;
left: 100%;
margin-top: -6px;
margin-left: -1px;
-webkit-border-radius: 0 6px 6px 6px;
-moz-border-radius: 0 6px 6px 6px;
border-radius: 0 6px 6px 6px;
}
.dropdown-submenu:hover>.dropdown-menu {
display: block;
z-index: 9999999;
}
.dropdown-submenu>a:after {
display: block;
z-index: 9999999;
content: " ";
float: right;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
border-width: 5px 0 5px 5px;
border-left-color: #cccccc;
margin-top: 5px;
margin-right: -10px;
}
.dropdown-submenu:hover>a:after {
border-left-color: #ffffff;
}
.dropdown-submenu.pull-left {
float: none;
}
.dropdown-submenu.pull-left>.dropdown-menu {
left: -100%;
margin-left: 10px;
-webkit-border-radius: 6px 0 6px 6px;
-moz-border-radius: 6px 0 6px 6px;
border-radius: 6px 0 6px 6px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
</head>
<body>
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav">
<li class="menu-item ">
<a href="#">Blog</a>
</li>
<li class="menu-item dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">About The Tests
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li class="menu-item dropdown dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Clearing Floats</a>
<ul class="dropdown-menu">
<li class="menu-item ">
<a href="#">Page with comments</a>
</li>
<li class="menu-item ">
<a href="#">Page with comments disabled</a>
</li>
<li class="menu-item dropdown dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">More</a>
<ul class="dropdown-menu">
<li>
<a href="#">3rd level link more options</a>
</li>
<li>
<a href="#">3rd level link</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="menu-item">
<a href="#">Lorem Ipsum</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li>
<form class="navbar-search navbar-form" method="get" action="">
<input type="text" class="form-control" placeholder="Search" name="s">
</form>
</li>
<li>
<a href="#" title="Subscribe to the RSS feed">
<i class="icon-rss"> </i>
</a>
</li>
</ul>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
</body>
</html>
你知道如何让菜单可见吗?我的错误在哪里?我在元素中设置了更高的z-index,显示是 block 所以我真的不知道如何解决......
提前致谢!
最佳答案
您没有使用正确的悬停选择器。这条规则:
.dropdown-submenu:hover>.dropdown-menu {
display: block;
z-index: 9999999;
}
应该有这个选择器(只是 .dropdown:hover
而不是 .dropdown-submenu:hover
):
.dropdown:hover > .dropdown-menu {
仅此一项更改就可以使下拉列表正常工作:https://codepen.io/anon/pen/eGVQMm
但是您可能还应该更改其他规则
关于css - 尽管设置了 Z-Index,但子菜单中的下拉菜单不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46619760/