【问题标题】: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

【问题讨论】:

    标签: css twitter-bootstrap navigation navbar collapse


    【解决方案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; }
    

    【讨论】:

      猜你喜欢
      • 2019-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-16
      相关资源
      最近更新 更多