所以,我已经将我的navbar
设置为自定义高度80px
,但现在这使得我的导航项目没有垂直居中。一段时间以来,我一直在寻找一个答案,让它们相对于父项垂直居中,所以我想我应该试试StackOverflow。
屏幕截图:http://screencast.com/t/zfUuX9SSQK
HTML:
<div class="container-fluid isModified">
<div class="row">
<nav class="navbar isModified" role="navigation">
<div class="col-lg-8 col-lg-offset-2">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#nav-collapse">
<span class="sr-only">Toggle Navigation</span>
<span class="icon-bar isModified"></span>
<span class="icon-bar isModified"></span>
<span class="icon-bar isModified"></span>
</button>
<a href="index.php" class="navbar-brand">Tickets</a>
</div>
<div class="collapse navbar-collapse" id="nav-collapse">
<ul class="nav navbar-nav isModified">
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
</ul>
</div>
</div> <!-- end col-lg-12 -->
</nav>
</div> <!-- end row -->
</div> <!-- end container -->
CSS:
.navbar.isModified {
height: 80px;
border-radius: 0;
background-color: #cccccc;
}
.icon-bar.isModified {
background-color: #fff;
}
垂直对齐可以通过多种方式完成,如堆栈溢出问题所示。然而,它们是相当情境化的,这意味着没有一种单一的方法可以应用于每一个案例。
对于您面临的问题,我建议使用line-height
方法,因为您所有的导航内容都在一行上。只需移除有问题的元素上的任何垂直填充,并将它们设置为具有与所需容器高度(80px)相同的line-height
:
.navbar-nav li a {
padding:0 15px;
line-height:80px;
}
.navbar-header a {
padding:0 15px;
line-height:80px;
}
这里有一个Bootply演示。希望这能有所帮助!如果你有任何问题,请告诉我。
或者,您可以使用:
.navbar.isModified a {
padding:0 15px;
line-height:80px;
}
尽管如果你计划在导航栏中以不同的方式设置其他链接的样式,你可能会发现这是一个过于宽泛的CSS选择器。
注意:如果你想让移动版菜单看起来不错,你可能需要使用媒体查询来用更多自己的样式覆盖这些样式
根据导航链接的行为方式,您可以通过多种方式实现这一点。你可能想把线的高度应用到你的链接上,所以在悬停时,它们仍然是导航条的全高768px以上(或者不,取决于)。然后,您可以使用另一个媒体并向navbar-header
类添加填充,以获得更高的导航栏。不要使用固定的高度,因为在移动设备上,你的切换导航将没有背景色,因为导航栏的默认值为min-height: 50px
。
工作示例:
.navbar.isModified {
background-color: #cccccc;
}
.navbar.isModified .icon-bar {
background-color: #fff;
}
@media (min-width: 768px) {
.navbar.isModified .navbar-brand {
line-height: 50px;
}
.navbar.isModified .navbar-nav > li > a {
line-height: 50px;
}
}
@media (max-width: 767px) {
.navbar.isModified .navbar-header {
padding: 15px 0;
}
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<div class="container-fluid">
<div class="row">
<nav class="navbar navbar-static-top isModified" role="navigation">
<div class="col-lg-8 col-lg-offset-2">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#nav-collapse">
<span class="sr-only">Toggle Navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="index.php" class="navbar-brand">Tickets</a>
</div>
<div class="collapse navbar-collapse" id="nav-collapse">
<ul class="nav navbar-nav">
<li><a href="#">Link 1</a>
</li>
<li><a href="#">Link 2</a>
</li>
<li><a href="#">Link 3</a>
</li>
</ul>
</div>
</div>
</nav>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>