【问题标题】:Twitter bootstrap 3 navbar navbar-right outside navbar-collapseTwitter bootstrap 3 navbar navbar-right outside navbar-collapse
【发布时间】:2013-09-04 09:34:03
【问题描述】:

在 Twitter 引导程序 2.3.2 中,我可以有类似的东西: http://jsfiddle.net/aQwUZ/3/

<div class="navbar navbar-inverse navbar-fixed-top">

        <div class="navbar-inner">
            <div class="container">

                <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </a>
                <a href="#" class="brand">BRAND</a>
                <ul class="nav  pull-right">
                  <li>
                    <a href="#">Fixed Link</a>
                  </li>
                </ul>

                <div class="nav-collapse">
                    <ul class="nav">
                        <li><a href="#">L1</a></li>
                        <li><a href=#">L2</a></li>
                    </ul>
                </div>

            </div>
        </div>
</div>

一个 twitter 引导导航栏,在移动响应视图中,“固定链接”在标题中保持可见。

现在,在 bootstrap 3 中,升级我的代码后,我只能拥有: http://jsfiddle.net/EC3Ly/4/

<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
            <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="#">BRAND</a>
                </div>
                <ul class="nav navbar-nav navbar-right">
                          <li>
                            <a href="#">Fixed Link</a>
                          </li>
                </ul>
                <div class="navbar-collapse collapse">

                    <ul class="nav navbar-nav">
                         <li><a href="#">L1</a></li>
                        <li><a href=#">L2</a></li>
                    </ul>

                </div>

            </div>
</nav>

在移动响应视图中,我得到 2 行... 我试图包裹在“navbar-header”节点http://jsfiddle.net/EC3Ly/5/ 或第一个“navbar-header”中,但没有成功。

我错过了什么?

谢谢,

亚历山大

【问题讨论】:

    标签: html css twitter-bootstrap navbar twitter-bootstrap-3


    【解决方案1】:

    我在使用 BS3 时遇到了同样的问题,我发现解决它的唯一方法是使用 pull-leftpull-right 的组合

    <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
      <div class="container">
        <div class="navbar-header pull-left">
          <a class="navbar-brand" href="#">BRAND</a>
        </div>
        <div class="navbar-header pull-right">
          <ul class="nav navbar-nav pull-left">
            <li>
              <a href="#">Fixed Link</a>
            </li>
          </ul>
          <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>
        </div>
        <div class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li><a href="#">L1</a></li>
            <li><a href="#">L2</a></li>
          </ul>                    
        </div>
      </div>
    </nav>
    

    工作演示:http://bootply.com/78856

    【讨论】:

    • 我也尝试使用 pull-left 和 pull-right,但是这个解决方案破坏了移动视图中的一些行为:_“Fixed Link”不能有右边距并且当这个节点是下拉节点时,它变得非常糟糕。
    • @heralight 我必须手动覆盖 .navbar-nav .open .dropdown-menu.navbar-nav .open .dropdown-menu &gt; li &gt; a 的引导下拉样式
    • 如果您有多个固定链接,它们在折叠时会堆叠在一起。
    【解决方案2】:

    移动导航栏中的两行是navbar-header的clearfix造成的:

    .navbar-header {
      .clearfix();
    
      @media (min-width: @grid-float-breakpoint) {
        float: left;
      }
    }
    

    您可以使用媒体查询和 css 来撤消此清除修复(并在折叠的下拉列表之前添加一个新的)

    .navbar-right {float: right !important;}
    
    @media(max-width:767px)
    {
        .navbar-right {margin-right:20px;}
        .navbar-header:after 
        {
        clear: none;
        }
        .navbar-nav.navbar-right > li { float: left; }
    
        .navbar-collapse:before {clear:both;}
    
        .navbar-collapse {overflow-y: hidden;}
        .navbar-collapse.in {overflow-y: visible;}
        .navbar{border-color: #101010; border-width: 0 0 1px;}
        .navbar-collapse.in > ul {border-color: #101010; border-top:1px double;}
    }
    
    }
    

    演示:http://bootply.com/82366

    媒体查询还在较小的屏幕上为导航栏右侧添加浮动右侧。要在生产中使用此代码,您可能会修复边框和可能的导航栏 css 转换。

    【讨论】:

      【解决方案3】:

      问题在于navbar 崩溃的点。默认情况下,Bootstrap 在 768px 处折叠。如果你增加这个,你的navbar会更快崩溃,你的问题就会消失。

      最好的方法是自定义您的引导文件并将@grid-float-breakpoint 更改为 850px(或您需要的任何大小)。您可以从http://getbootstrap.com/customize/?id=9720390 轻松自定义 bootstrap 3

      希望这会有所帮助。

      【讨论】:

      • 谢谢,卢锡安。我是 Stack 新手 :)
      【解决方案4】:

      我是这样解决的。就在品牌之后添加两条具有相同类别和一个附加类别的新系列。

              <!-- Branding Image -->
              <a class="navbar-brand" href="{{ url('/') }}">Home</a>
              <!-- Fake branding to avoid breaking up navbar -->
              <a class="navbar-brand navbar-brand-fake">Item 1</a>
              <a class="navbar-brand navbar-brand-fake">Item 2</a>
      

      并将其添加到您的 css 文件中:

      a.navbar-brand-fake {
          font-size: 15px;
          line-height: 21px;
          margin-left: 2px !important;
      }
      

      首页、项目 1 和项目 2 在调整大小时保留在导航栏中,并且导航栏不会中断。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-18
        • 1970-01-01
        • 2014-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多