使用flexbox在导航栏内垂直定位导航栏药片
问题描述:
我在CSS中很糟糕,所以我无法垂直为我的导航栏居中放置我的<li>
(导航栏药片)。这导航栏是从Twitter的引导使用flexbox在导航栏内垂直定位导航栏药片
这里是我的导航栏的HTML:
<div class="container">
<nav class="navbar navbar-default navbar-fixed-top">
<ul id="nav_pills" class="nav nav-pills" role="tablist">
<li role="presentation">
<a href="/">About</a>
</li>
<li role="presentation">
<a href="/gallery">Gallery</a>
</li>
<li role="presentation">
<a href="/news">News</a>
</li>
<li role="presentation">
<a href="#history">History</a>
</li>
<li role="presentation">
<a href="#contact">Contact</a>
</li>
</ul>
</nav>
</div>
我的导航栏目前看起来像这样:
我想使用flexbox
以及因在浏览解决方案时,使用flexbox似乎是一种简单的方式来垂直居中我的导航栏按钮。
这是我目前试过,但它没有工作=/
.nav li {
display: flex;
flex-direction: row;
align-items: baseline;
}
答
设置display: flex
为<ul class="nav">
,而不是项目。
还可以使用align-items: center
垂直aligment:
.nav {
height: 70px;
display: flex;
justify-content: center;
align-items: center;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container">
<nav class="navbar navbar-default navbar-fixed-top">
<ul id="nav_pills" class="nav nav-pills" role="tablist">
<li role="presentation">
<a href="/">About</a>
</li>
<li role="presentation">
<a href="/gallery">Gallery</a>
</li>
<li role="presentation">
<a href="/news">News</a>
</li>
<li role="presentation">
<a href="#history">History</a>
</li>
<li role="presentation">
<a href="#contact">Contact</a>
</li>
</ul>
</nav>
</div>
答
要垂直对齐,设置列表元素线高度等于导航栏的高度并卸下前和底部填充。它不会需要Flexbox
在所有:)
.nav > li > a {
display: block;
line-height: 50px; // Add
padding: 0 15px; // Modify
position: relative;
}
+0
我的导航栏目前没有任何填充。我改变了导航栏的高度,并尝试了你的CSS,并将我的行高改为与导航栏的高度相同。它仍然垂直居中,就像导航栏的行高没有改变一样。 http://postimg.org/image/hnsv1drv5/ http://dpaste.com/298F5GH – Liondancer
非常感谢! – Liondancer