1.情景:这是出现在手机端导航适配的,点击文本MENU可以出现下拉的list
解决方法:
1.首先要想到,MENU只有两个状态,因此可以用checkbox实现
2.将MENU放在label标签里面,label的for与checkbox的id一致就可以关联在一起了
3.将要显示的list先设置为隐藏,用hidden-xs,当点击checkbox时,就显示出来
附加的:把MENU移到右边的操作,用css可以搞定,通过设置 display: inline-block;
并添加少量的内补(padding),将所有元素放置于同一行。
#toggle-lebel {
display: inline-block;
position: absolute;
right: 15px;
top: 13px;
font-size: 16px;
font-weight: normal;
color: #888;
} #toggle-lebel:hover {
color: #333;
}
完整代码:(注意:Bootstrap 需要为页面内容和栅格系统包裹一个 .container
容器)
1.html
<div class="navbar navbar-default">
<div class="container">
<div class="navbar-header">
<a href="index.html" class="navbar-brand"></a>
</div>
<label id="toggle-lebel" for="toggle-checkbox">MENU</label>
<input class="hidden" id="toggle-checkbox" type="checkbox">
<div class="hidden-xs">
<ul class="nav navbar-nav">
<li class="active"><a href="index.html">首页</a></li>
<li><a href="#">国内</a></li>
<li><a href="#">国际</a></li>
<li><a href="#">数度</a></li>
<li><a href="#">社会</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="login.html">登录</a></li>
<li><a href="signup.html">注册</a></li>
</ul>
</div> </div>
</div>
2.css
#toggle-checkbox:checked ~div{
display: block !important;
} #toggle-lebel {
display: inline-block;
position: absolute;
right: 15px;
top: 13px;
font-size: 16px;
font-weight: normal;
color: #888;
} #toggle-lebel:hover {
color: #333;
}
2.情景:MENU在超小尺寸下显示,屏幕变大后消失
两步:
1.在label标签上添加class="visible-xs-inline-block"
2.
注意:通过设置 display: inline-block;
并添加少量的内补(padding),将所有元素放置于同一行。