我正在通过此链接创建子菜单下拉列表:
https://www.w3schools.com/bootstrap/tryit.asp?filename=trybs_ref_js_dropdown_events2&stacked=h
但是我的所有子菜单始终处于打开状态,我希望它能够正常工作,这意味着子菜单仅在将鼠标悬停在父菜单上(即我使用引导程序3.3.7)时才会显示。
这是描述图像,当我按下“ CLICK”按钮时,子菜单也始终处于打开状态(菜单3和菜单4)
这是我的代码:
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">CLICK
<span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a tabindex="-1" href="#">MENU 1</a></li>
<li><a tabindex="-1" href="#">MENU 2</a></li>
<li class="dropdown-submenu">
<a class="test" tabindex="-1" href="#">MENU 3</a>
<ul class="dropdown-menu">
<li><a tabindex="-1" href="#">MENU 3.1</a></li>
<li><a tabindex="-1" href="#">MENU 3.2</a></li>
</ul>
</li>
<li class="dropdown-submenu">
<a class="test" tabindex="-1" href="#">MENU 4</a>
<ul class="dropdown-menu">
<li><a tabindex="-1" href="#">MENU 4.1</a></li>
<li><a tabindex="-1" href="#">MENU 4.2</a></li>
</ul>
</li>
</ul>
</div>
// style
.dropdown-submenu {
position: relative;
}
.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;
border-radius: 0 6px 6px 6px;
}
.dropdown-submenu:hover>.dropdown-menu {
display: block;
}
.dropdown-submenu>a:after {
display: block;
content: " ";
float: right;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
border-width: 5px 0 5px 5px;
border-left-color: #ccc;
margin-top: 5px;
margin-right: -10px;
}
.dropdown-submenu:hover>a:after {
border-left-color: #fff;
}
.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;
}
答案 0 :(得分:0)
您应该使用display:none,然后在悬停时使用display:block
// style
.dropdown-submenu {
position: relative;
}
.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;
border-radius: 0 6px 6px 6px;
}
.dropdown-submenu .dropdown-menu {
display: none;
}
.dropdown-submenu:hover>.dropdown-menu {
display: block;
}
.dropdown-submenu>a:after {
display: block;
content: " ";
float: right;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
border-width: 5px 0 5px 5px;
border-left-color: #ccc;
margin-top: 5px;
margin-right: -10px;
}
.dropdown-submenu:hover>a:after {
border-left-color: #fff;
}
.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;
}
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">CLICK
<span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a tabindex="-1" href="#">MENU 1</a></li>
<li><a tabindex="-1" href="#">MENU 2</a></li>
<li class="dropdown-submenu">
<a class="test" tabindex="-1" href="#">MENU 3</a>
<ul class="dropdown-menu">
<li><a tabindex="-1" href="#">MENU 3.1</a></li>
<li><a tabindex="-1" href="#">MENU 3.2</a></li>
</ul>
</li>
<li class="dropdown-submenu">
<a class="test" tabindex="-1" href="#">MENU 4</a>
<ul class="dropdown-menu">
<li><a tabindex="-1" href="#">MENU 4.1</a></li>
<li><a tabindex="-1" href="#">MENU 4.2</a></li>
</ul>
</li>
</ul>
</div>