没有导航栏元素的引导导航切换
Posted
技术标签:
【中文标题】没有导航栏元素的引导导航切换【英文标题】:Bootstrap nav toggle without navbar element 【发布时间】:2013-12-06 13:50:07 【问题描述】:是否可以在不使用默认导航的所有标记的情况下创建切换按钮?
我只想创建带有折叠功能的简单菜单。例如:
<div class="navigation">
<ul id="nav-to-collapse">
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
<a href="#" class="toggle" data-toggle="collapse" data-target="#nav-to-collapse">
</div>
这可能吗?这是我第一次使用 Bootstrap (3),它真的很混乱。我不想使用所有导航栏类,因为这样我就必须覆盖所有导航栏样式才能创建我想要的简单菜单。
编辑:我设法在没有所有无用导航栏类的情况下创建了切换,但是当导航高度发生更改时,切换动画存在问题。这是一个说明问题的 jsfiddle:Jsfiddle demo
【问题讨论】:
【参考方案1】:Bootstrap 的切换函数是一个 javascript 函数,当用户单击具有 data-toggle="collapse" 属性的元素时会触发该函数。如果还没有指定 data-target="" id,则用户单击的元素将被折叠。但是,在这一点标记中:
<a href="#" class="toggle" data-toggle="collapse" data-target="#nav-to-collapse">
data-target="" 属性设置为 #nav-to-collapse 的 id。所以 Bootstrap 的折叠插件会寻找一个 id="nav-to-collapse" 并在那个 id 上触发它的功能。
所以在这个标记中:
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Project name</a>
</div>
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
data-target 设置为 .navbar-collapse 的类,这将使该元素下的所有内容都折叠。
【讨论】:
好的,我设法让它在没有所有无用的导航栏类的情况下工作。但是有一个问题,当我将 css 中的导航高度设置为除 auto 之外的任何其他值时,下推正文内容的折叠动画不起作用。我创建了一个小提琴,所以你可以明白我的意思:jsfiddle.net/cfcZY。当您取消注释 nav height: 声明时,它会中断。 那是因为你给它一个静态高度。通过将该容器的高度设置为 100 像素,它将扩展为 100 像素,但不会更多。通过将其设置为自动,容器的高度将扩大以为容器内的所有内容腾出空间。如果您只需要它扩展到某个高度,则必须同时设置容器的高度,然后确保您的所有内容都适合该容器(例如,通过更改导航链接的字体大小)。 是的,虽然它会在导航下方创建新的 div 并将链接放在那里。我通过使用 min-height 来修复它:)【参考方案2】:通过在导航元素上使用 min-height 而不是 height 来修复折叠动画问题。这是一个小提琴:http://jsfiddle.net/cfcZY/2/
nav min-height: 100px;
【讨论】:
以上是关于没有导航栏元素的引导导航切换的主要内容,如果未能解决你的问题,请参考以下文章