解读Navbar
Bootstrap的navbar,用bootstrap制作响应式网站肯定会用的到,这里来研究一下:
最外层包裹的是类名为navbar的div:
.navbar {
position: relative;
min-height: 50px;
margin-bottom: 20px;
border: 1px solid transparent;
}
有两种主题可以选,navbar-default\navbar-inverse(反色),有边框颜色,背景颜色
.navbar-default {
background-color: #f8f8f8;
border-color: #e7e7e7;
}
大屏幕中有圆角边框,使用navbar-fixed-top\bottom后消失
@media (min-width: 768px)
.navbar {
border-radius: 4px;
}
navbar-header是navbar的子元素,左浮动,内有nabar-toggle和navbar-brand两个子元素,navbar-toggle在大屏幕中隐藏。
当屏幕小于768px,navbar-header不再浮动,而是占满navbar,此时navbar-toggle右浮动,navbar-collapse隐藏。
@media (min-width: 768px)
.navbar-header {
float: left;
}
@media (min-width: 768px)
.navbar-collapse.collapse {
display: block!important;
height: auto!important;
padding-bottom: 0;
overflow: visible!important;
}
navbar-toggle大小为44x34,有8px 15px 8px 0 的margin。
.navbar-default .navbar-toggle {
border-color: #ddd;
}
.navbar-toggle {
position: relative;
float: right;
padding: 9px 10px;
margin-top: 8px;
margin-right: 15px;
margin-bottom: 8px;
background-color: transparent;
background-image: none;
border: 1px solid transparent;
border-radius: 4px;
}
navbar-brand有特定的高度:
.navbar-brand {
float: left;
height: 50px;
padding: 15px 15px;
font-size: 18px;
line-height: 20px;
}
navbar-collapse在大屏幕中是block元素,默认占满navbar,它可以有navbar-nav元素,这些元素默认都是左浮动,可以设置navbar-left/navbar-right来让它左右浮动。
定制Navbar
navbar元素内可以有container,让navbar看起来窄一点。
navbar-brand有50px的高度,并且有15px的padding,其实它content的高度为20px,并且有20px的line-height,我们可以修改它的高度为我们想要的高度:
.navbar-brand {
display: block;
padding: 10px 15px;
height: 86px;
line-height: 66px;
}
navbar-brand的高度撑开了navbar,会让其它元素的显示显得怪异,所以我们要撑开其它的元素,比如navbar-nav里的a,我们需要合理的设置它的line-height:
.navbar-default .navbar-nav>li>a {
color: #777;
line-height: 56px;
}
默认情况下,a有15px的padding。
对于navbar-toggle与navbar-form,我们需要设置它们的margin-top来达到垂直居中的目的。
对于其它不必要的元素,我们需要设置hidden-xs/hidden-sm/hidden-md来让它们不要出现在小屏幕中。