如何对齐项目flexbox

时间:2017-03-09 04:35:54

标签: css html5 css3 flexbox

我正在尝试垂直对齐白框,使它们位于图片的中间位置。我尝试使用align-items:center;但是我需要在我不想要的行类中添加高度。

http://codepen.io/VK72m/pen/ZeLaNx

<div class="container">
 <div class="row">
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
</div>
 <div class="row">
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
</div>

 body {
  margin: 0;
  padding: 0;
  font-size: 100%;
}

.container {   
  align-items: center;    
  margin: 0;
  padding: 0;
  height: 19em;
  width: 20em;
  background-color: black;
  background: url("https://images.pexels.com/photos/340779
  /pexels-photo- 340779.jpeg?w=1260&h=750&auto=compress&cs=tinysrgb");
  background-position: -22em ;
}

.row {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

.box {
  margin: 0;        
  padding: 0;
  height: 3em;
  width: 3em;
  margin: 0.9em;      
  background-color: white;
}

4 个答案:

答案 0 :(得分:1)

将flex添加到容器中:

.container {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

答案 1 :(得分:0)

justify-content: center

这里也是一个很好的资源:https://css-tricks.com/snippets/css/a-guide-to-flexbox/

答案 2 :(得分:0)

它定义了如何在当前行的横轴上布置弹性项目的默认行为。您可以将其视为横轴的justify-content版本(垂直于主轴)。

align-items属性接受5个不同的值:

    项目的
  • flex-start:交叉开始边缘位于交叉起跑线上
  • 项目的
  • flex-end:跨端边距位于十字线
  • center:项目以横轴为中心
  • baseline:项已对齐,例如其基线对齐
  • stretch (default):伸展以填充容器(仍然尊重最小宽度/最大宽度)

下图有助于了解如何根据align-items值布置Flex项目。

enter image description here

align-items: flex-start | flex-end | center | baseline | stretch

.flex-container {
  align-items: flex-start;
}

http://codepen.io/HugoGiraudel/pen/2bfe2c024739bdd4098572f87d1bf585

答案 3 :(得分:0)

尝试使用此简单 Flexbox 系统

&#13;
&#13;
.flex-container {
  padding: 0;
  margin: 0;
  list-style: none;
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-flow: row wrap;
  justify-content: space-around;
}

.flex-item {
  background: orange;
  padding: 5px;
  width: 200px;
  height: 150px;
  margin-top: 10px;
  line-height: 150px;
  color: white;
  font-weight: bold;
  font-size: 3em;
  text-align: center;
}
&#13;
<ul class="flex-container">
  <li class="flex-item">1</li>
  <li class="flex-item">2</li>
  <li class="flex-item">3</li>
  <li class="flex-item">4</li>
  <li class="flex-item">5</li>
  <li class="flex-item">6</li>
</ul>
&#13;
&#13;
&#13;