Dev*_*evC 317 css submenu twitter-bootstrap twitter-bootstrap-3
Bootstrap 3仍然在RC,但我只是想实现它.我无法弄清楚如何放置子菜单类.即使css中没有课程,甚至新的文档也没有说出任何关于它的内容
在2.x中有类名作为dropdown-submenu
Zim*_*Zim 543
2018年更新
该dropdown-submenu
自举3 RC已被删除.用Bootstrap作者Mark Otto的话来说..
"子菜单现在在网络上没有多少地方,特别是移动网络.它们将被移除3.0" - https://github.com/twbs/bootstrap/pull/6342
但是,通过一些额外的CSS,您可以获得相同的功能.
Bootstrap 4(悬停时的导航栏子菜单)
.navbar-nav li:hover > ul.dropdown-menu {
display: block;
}
.dropdown-submenu {
position:relative;
}
.dropdown-submenu>.dropdown-menu {
top:0;
left:100%;
margin-top:-6px;
}
Run Code Online (Sandbox Code Playgroud)
Navbar子菜单下拉菜单悬停
Navbar子菜单下拉菜单悬停(右对齐)
Navbar子菜单下拉菜单单击(右对齐)
Navbar下拉菜单悬停(无子菜单)
Bootstrap 3
以下是使用3.0 RC 1的示例:http://bootply.com/71520
以下是使用Bootstrap 3.0.0(最终版)的示例:http://bootply.com/86684
CSS
.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 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:#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;
}
Run Code Online (Sandbox Code Playgroud)
样本标记
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav">
<li class="menu-item dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Drop Down<b class="caret"></b></a>
<ul class="dropdown-menu">
<li class="menu-item dropdown dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Level 1</a>
<ul class="dropdown-menu">
<li class="menu-item ">
<a href="#">Link 1</a>
</li>
<li class="menu-item dropdown dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Level 2</a>
<ul class="dropdown-menu">
<li>
<a href="#">Link 3</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
PS - 调整左侧位置的导航栏示例:http://bootply.com/92442
Shp*_*ink 61
@skelly解决方案很好但不能在移动设备上运行,因为悬停状态不起作用.
我添加了一些JS来恢复BS 2.3.2的行为.
PS:它可以与您到达的CSS一起使用:http://bootply.com/71520虽然您可以评论以下部分:
CSS:
/*.dropdown-submenu:hover>.dropdown-menu{display:block;}*/
Run Code Online (Sandbox Code Playgroud)
JS:
$('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
// Avoid following the href location when clicking
event.preventDefault();
// Avoid having the menu to close when clicking
event.stopPropagation();
// If a menu is already open we close it
$('ul.dropdown-menu [data-toggle=dropdown]').parent().removeClass('open');
// opening the one you clicked on
$(this).parent().addClass('open');
});
Run Code Online (Sandbox Code Playgroud)
结果可以在我的WordPress主题上找到(页面顶部):http://shprinkone.julienrenaux.fr/
vee*_*vee 42
直到今天(2014年1月9日),Bootstrap 3仍然不支持子菜单下拉列表.
我在谷歌搜索了响应式导航菜单,发现这是我最好的.
这是智能菜单 http://www.smartmenus.org/
我希望这是任何想要使用多级子菜单的导航菜单的人的出路.
更新2015-02-17智能菜单现在完全支持子菜单的Bootstrap元素样式.有关更多信息,请查看智能菜单网站.
在 Bootstrap 5 中,由于新的autoClose
选项和dropend
类,现在无需使用任何 JavaScript 代码即可轻松实现下拉子菜单。
现场演示: https: //jsfiddle.net/b038kc2y/
.dropdown-menu .dropdown-menu {
top: -.5rem !important;
}
Run Code Online (Sandbox Code Playgroud)
<div class="dropdown m-5">
<a class="btn btn-secondary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
Dropdown link
</a>
<ul class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<li class="dropend">
<a class="dropdown-item" href="#" id="dropdownSubMenuLink" data-bs-toggle="dropdown" aria-expanded="false">Submenu Action</a>
<ul class="dropdown-menu" aria-labelledby="dropdownSubMenuLink">
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
</ul>
</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
Shprink的代码对我帮助最大,但为了避免下拉屏幕,我将其更新为:
JS:
$('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
// Avoid following the href location when clicking
event.preventDefault();
// Avoid having the menu to close when clicking
event.stopPropagation();
// If a menu is already open we close it
$('ul.dropdown-menu [data-toggle=dropdown]').parent().removeClass('open');
// opening the one you clicked on
$(this).parent().addClass('open');
var menu = $(this).parent().find("ul");
var menupos = $(menu).offset();
if (menupos.left + menu.width() > $(window).width()) {
var newpos = -$(menu).width();
menu.css({ left: newpos });
} else {
var newpos = $(this).parent().width();
menu.css({ left: newpos });
}
});
Run Code Online (Sandbox Code Playgroud)
CSS: FROM background-color: #eeeeee TO background-color: #c5c5c5 - white font & light background wasn't looking good.
.nav .open > a,
.nav .open > a:hover,
.nav .open > a:focus {
background-color: #c5c5c5;
border-color: #428bca;
}
Run Code Online (Sandbox Code Playgroud)
I hope this helps people as much as it did for me!
But i hope Bootstrap add the subs feature back ASAP.
归档时间: |
|
查看次数: |
401269 次 |
最近记录: |