为了账号安全,请及时绑定邮箱和手机立即绑定

导航菜单默认在屏幕小于768px的时候自动折叠,怎么自定义这个大小?

比方说我想让导航菜单在屏幕小于960px的时候才自动折叠,该怎么做?

各位大虾帮忙解答一下

正在回答

5 回答

简单做的话,直接饮用BOOTSTARP菜单,别在BOOTSTARP.CSS的文件里面修改,引用一个自己建的CSS文件,找到相应的div在自己建的CSS文件里面改。

小白注意:CSS是从上往下加载的,所以自己建的这个CSS文件夹必须放在BOOTSTARP.CSS文件的后面引用

0 回复 有任何疑惑可以回复我~

我现在也需要实现这种 效果 ,有好的方案吗


0 回复 有任何疑惑可以回复我~
<header role="banner">
    <nav role="navigation" class="navbar navbar-static-top navbar-default">
        <div class="container ">
            <div class="navbar-header">
                <!--设置手风琴式的navbar,然后类navbar-toggle包装在屏幕大于992px,隐藏-->
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse">
                    <!--这里的span.icon-bar 是用来在按钮中画三条线-->
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="index.html"><img src="img/logo.png" alt="Bootstrappin'" width="120"></a>
                <!--这里的商标图一定要设置宽度-->
            </div>
            <!--这里的类collapse保证默认包裹的菜单是隐藏的,如果 替换为 in 则显示-->
            <div class="navbar-collapse collapse" id="navbar-collapse">
                <ul class="nav navbar-nav">
                    <li class="active"><a href="index.html">
                        <span class="icon fa fa-home "></span> Home</a></li>
                    <li><a href="#">
                       <span class="icon fa fa-desktop"></span> Portfolio</a></li>
                    <li><a href="#">
                        <span class="icon fa fa-group "></span> Team</a></li>
                    <li><a href="#">
                        <span class="icon fa fa-envelope "></span> Contact</a></li>
                </ul>
            </div><!--/.nav-collapse -->
        </div><!--/.container -->
    </nav>
</header>

这是我跟着做的一个实例,看上面第一个注释,button定义了类navbar-toggle。navbar-toggle其中的一个样式是媒体查询。

//bootstrap.css
@media (min-width: 992px) {
  .navbar-toggle {
    display: none;
  }
}

然后我又查看了下navbar.less文件。发现

//navbar.less

.navbar-toggle {
  position: relative;
  float: right;
  margin-right: @navbar-padding-horizontal;
  padding: 9px 10px;
  .navbar-vertical-align(34px);
  background-color: transparent;
  border: 1px solid transparent;
  border-radius: @border-radius-base;

  // Bars
  .icon-bar {
    display: block;
    width: 22px;
    height: 2px;
    border-radius: 1px;
  }
  .icon-bar + .icon-bar {
    margin-top: 4px;
  }

  @media (min-width: @grid-float-breakpoint) { //@grid-float-breakpoint
    display: none;
  }
}

//variables.less
@grid-float-breakpoint:     @screen-sm-min;
//--------
@screen-sm:                  768px;
@screen-sm-min:              @screen-sm;

@screen-md:                  992px;
@screen-md-min:              @screen-md;
@screen-desktop:             @screen-md-min;

// Large screen / wide desktop
// Note: Deprecated @screen-lg and @screen-lg-desktop as of v3.0.1
@screen-lg:                  1200px;
@screen-lg-min:              @screen-lg;
@screen-lg-desktop:          @screen-lg-min;

所以,如果你想修改默认的折叠断点,就将上面的媒体查询变量 @grid-float-breakpoint:     @screen-sm-min;

修改为其他Bootstrap定义的断点,当然也可以自定义一个断点变量。然后重新编译为css文件即可。

注:最好把 variables.less 复制一份为 _variables.lss。navbar.less 复制一份 _navbar.less。然后在复制的文件上修改。最后将 bootstrap.less 复制一份 __bootstrap 将其中的导入

//__bootstrap.less
//@import "navbar.less"; 
@import "_navbar.less";
//@import "variables.less";
@import "_variables.less";

修改完,编译自定义的 __bootstrap.less 即可。

1 回复 有任何疑惑可以回复我~
#1

amilu

第二段代码我复制的是修改后再编译的代码,这里我是将@grid-float-breakpoint: @screen-md-min;
2017-01-31 回复 有任何疑惑可以回复我~

有一个最不好的办法,就是你去改bootstrap里面带的媒体查询css样式,这样也能达到目的

0 回复 有任何疑惑可以回复我~
#1

分我一丁目 提问者

​我看到一个网站,屏幕小于960px才导航菜单自动折叠,所以才想知道如何实现。 直接修改bootstrap的css文件来实现的确实不好,有没有什么别的方法,比如设置css覆盖掉的bootstrap的css行不行?
2017-01-20 回复 有任何疑惑可以回复我~

这个不能吧?小于768px和小于960px是bootstrap设置的一个临界值,或许你可以查找官网的静止自适应布局方面的方案,或许对你有帮助。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

导航菜单默认在屏幕小于768px的时候自动折叠,怎么自定义这个大小?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信