【问题标题】:Twitter bootstrap 3 how to activate navbar-collapse on small devicesTwitter bootstrap 3 如何在小型设备上激活导航栏折叠
【发布时间】:2014-06-14 09:21:23
【问题描述】:

我正在使用 bootstrap 3.0 并在移动网站上工作。我试图弄清楚如何在查看平板电脑设备(Small / SM Device)时显示和激活 navbar-toggle,因为 navbar-collapse 仅适用于 Extra small devices 。使用bootstrap 2没有问题

这是我的代码

<nav class="navbar navbar-inverse navbar-default-top" role="navigation" style="border:0px; background:#F26522;" align="center">

    <div class="col-lg-3  col-md-3 col-sm-12" style="background-color:#fff; height:192px;" align="center" > 

<div class="hidden-xs hidden-sm"></div><a  href="#"><img src="logo_png.png"   class="img-responsive" ></a></td>
   </div>


    <div class="col-lg-9 col-md-9 col-sm-12"">
      <div class="row">
        <div class="col-lg-11 col-md-11 col-sm-12">
          <button type="button" class="navbar-toggle pull-left hidden-md hidden-lg" 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 class="collapse navbar-collapse navbar-ex1-collapse">
            <ul class="nav navbar-nav navbar-left navr">
              <li class="navrli"><a href="#" id="nav-0">ABOUT</a> </li>

            </ul>
          </div>
        </div>
        <div class="col-lg-1 col-md-1 hidden-sm" align="right">
        </div>
      </div>
    </div>
    <!-- /.navbar-collapse --> 

  <!-- /.container --> 
</nav>

【问题讨论】:

  • 请包含标记。
  • 您可以按照documentation 中的说明自定义@grid-float-breakpoint 变量(溢出内容部分,点c.
  • 我包含了标记。谢谢
  • 您的示例第 9 行的 HTML 格式错误:div class="col-lg-9 col-md-9 col-sm-12""&gt; &lt;--

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


【解决方案1】:

默认断点为@screen-sm-min(即≥768px)。

View an Example

自定义导航栏断点

要自定义导航栏断点,请更改 less 变量 @grid-float-breakpoint

来自documentation

溢出的内容

由于 Bootstrap 不知道导航栏中的内容需要多少空间,因此您可能会遇到内容包装到第二行的问题。要解决此问题,您可以:

...

c. 更改导航栏在折叠和水平模式之间切换的点。自定义 @grid-float-breakpoint 变量或添加您自己的媒体查询。

您可以使用Bootstrap's customization tool 构建一个修改版的 Bootstrap。从here,您可以将@grid-float-breakpoint 更改为由Bootstrap 定义的另一个断点(即xssmmdlg)或设置的数量(即500px)。

完成后,导航到Download 部分,然后单击Compile and Download

编辑

您的标记也按预期工作:http://jsbin.com/kuxah/1/edit?html,output

【讨论】:

  • 感谢您的帮助!我真的很感激 :) 但基本上我只需要显示导航栏切换并折叠直到 991px 屏幕。我会尽量听从你的建议:)
  • 我解释了如何使用引导程序的自定义工具来做到这一点。虽然 LESS 可能令人生畏,但并不复杂。
  • 如果您和我一样,不喜欢重新编译整个引导程序文件并覆盖其中的其他自定义内容,请查看此解决方案,它工作得非常好,而且 IMO 更好:stackoverflow.com/questions/18192082/…
  • 如果您与特定版本的 CSS @QuantumHive 如此耦合,那就告别可重用性而不会臃肿。
【解决方案2】:

这里是野蛮人的解决方案

@media(max-width:$screen-sm-max) {
 .navbar-header {
    float: none;
}
.navbar-left,.navbar-right {
    float: none !important;
}
.navbar-toggle {
    display: block;
}
.navbar-collapse {
    border-top: 1px solid transparent;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
}
.navbar-fixed-top {
    top: 0;
    border-width: 0 0 1px;
}
.navbar-collapse.collapse {
    display: none!important;
}
.navbar-nav {
    float: none!important;
    margin-top: 7.5px;
}
.navbar-nav>li {
    float: none;
}
.navbar-nav>li>a {
    padding-top: 10px;
    padding-bottom: 10px;
}
.collapse.in{
    display:block !important;
}
}

【讨论】:

  • 完美运行
【解决方案3】:

当你简单地用媒体查询覆盖网格时为什么要打破网格,例如在 sass 中

.navbar-toggle{  
    @media(max-width:$screen-sm-max) {
    display: block !important;
  }
}

【讨论】:

    猜你喜欢
    • 2013-09-18
    • 2015-02-05
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    • 2012-04-13
    • 2012-08-02
    • 1970-01-01
    相关资源
    最近更新 更多