比方说我想让导航菜单在屏幕小于960px的时候才自动折叠,该怎么做?
各位大虾帮忙解答一下
简单做的话,直接饮用BOOTSTARP菜单,别在BOOTSTARP.CSS的文件里面修改,引用一个自己建的CSS文件,找到相应的div在自己建的CSS文件里面改。
小白注意:CSS是从上往下加载的,所以自己建的这个CSS文件夹必须放在BOOTSTARP.CSS文件的后面引用
我现在也需要实现这种 效果 ,有好的方案吗
<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 即可。
有一个最不好的办法,就是你去改bootstrap里面带的媒体查询css样式,这样也能达到目的
这个不能吧?小于768px和小于960px是bootstrap设置的一个临界值,或许你可以查找官网的静止自适应布局方面的方案,或许对你有帮助。