使用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> 

我的导航栏目前看起来像这样:

enter image description here

我想使用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>

+0

非常感谢! – Liondancer

要垂直对齐,设置列表元素线高度等于导航栏的高度并卸下前和底部填充。它不会需要Flexbox在所有:)

.nav > li > a { 
    display: block; 
    line-height: 50px; // Add 
    padding: 0 15px; // Modify 
    position: relative; 
} 

Bootply

+0

我的导航栏目前没有任何填充。我改变了导航栏的高度,并尝试了你的CSS,并将我的行高改为与导航栏的高度相同。它仍然垂直居中,就像导航栏的行高没有改变一样。 http://postimg.org/image/hnsv1drv5/ http://dpaste.com/298F5GH – Liondancer