所以,我已将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;
}
答案 0 :(得分:4)
垂直对齐可以通过多种方式完成,如this Stack Overflow question所示。但是,它们具有相当的情境性,这意味着没有一种方法可以应用于每种情况。
对于您所面临的问题,我建议使用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选择器。
注意:如果您希望菜单的移动版本看起来不错,则可能需要使用媒体查询来覆盖这些样式,并使用更多自己的样式。
答案 1 :(得分:0)
您可以通过多种方式执行此操作,具体取决于导航链接的行为方式。您可能希望将线高应用于链接,因此在悬停时它们仍然是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;
}
}
&#13;
<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>
&#13;