分我一丁目
2017-01-19 11:47
比方说我想让导航菜单在屏幕小于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设置的一个临界值,或许你可以查找官网的静止自适应布局方面的方案,或许对你有帮助。
玩转Bootstrap(基础)
314541 学习 · 2364 问题
相似问题