2017-10-06 47 views
0

我使用CSS Flexbox将创建一个垂直居中导航:Flexbox的排

#main-nav { 
    display: flex; 
    height: 400px; 
    width: 50%; 
    background: #ccc; 
    align-items: center; 
    padding: 50px; 
    ul { 
    list-style: none; 
    padding: 0; 
    margin: 0; 
    } 
} 

子元素应该保持彼此之间。目前,这些元素是垂直居中的,但他们保持相邻。有没有一个奇特的解决方案或一些解决方法来做到这一点?请注意,弹性方向设置为row

结果应该是这样的:

RESULT

检查出来:

#main-nav { 
 
    display: flex; 
 
    height: 400px; 
 
    width: 50%; 
 
    background: #ccc; 
 
    align-items: center; 
 
    padding: 50px; 
 
} 
 

 
ul { 
 
    list-style: none; 
 
    padding: 0; 
 
    margin: 0; 
 
}
<nav id="main-nav"> 
 
    <ul> 
 
    <li><a href="#">Home</a></li> 
 
    <li><a href="#">About</a></li> 
 
    <li><a href="#">Products</a></li> 
 
    <li><a href="#">Contact</a></li> 
 
    </ul> 
 
    <div class="contact-info"> 
 
    Lorem Ipsum 
 
    </div> 
 
</nav>

https://jsfiddle.net/4d58xrz8/

+2

你通过*他们保持彼此相邻的意思* ? – bhansa

+2

'ul'显示器:flex? – kukkuz

+0

你能添加一个你想要的布局图吗?或者更具体地说,谢谢 – sol

回答

0

添加flex-direction:column;#main-nav

#main-nav { 
 
    display: flex; 
 
    height: 400px; 
 
    width: 50%; 
 
    background: #ccc; 
 
    flex-direction:column; 
 
    align-items: left; 
 
    padding: 50px; 
 
} 
 

 
ul { 
 
    list-style: none; 
 
    padding: 0; 
 
    margin: 0; 
 
}
<nav id="main-nav"> 
 
    <ul> 
 
    <li><a href="#">Home</a></li> 
 
    <li><a href="#">About</a></li> 
 
    <li><a href="#">Products</a></li> 
 
    <li><a href="#">Contact</a></li> 
 
    </ul> 
 
    <div class="contact-info"> 
 
    Lorem Ipsum 
 
    </div> 
 
</nav>

1

如果我理解过程rstood,flex-direction是你所需要的,并且用justify-content替换align-items,因为方向改变了。

编辑你的CSS这样获得你的结果:

#main-nav { 
    display: flex; 
    height: 400px; 
    width: 50%; 
    background: #ccc; 
    justify-content: center; 
    flex-direction:column; 
    padding: 50px; 
    ul { 
    list-style: none; 
    padding: 0; 
    margin: 0; 
    } 
}