当flex-direction为列时,如何将div与顶部对齐?

时间:2018-04-28 14:27:37

标签: html css css3 flexbox centering

我在容器中有两个div标签。我想使用弹性框并将第一个div标签对齐到顶部,另一个相对于容器居中。我怎么能这样做?

当flex-direction为列时,使用align-items: flex-start仅将其移动到左侧。什么是将它移到顶部的等效css?

codepen:https://codepen.io/GMSg68/pen/aGpOpG



.box {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 500px;
  border: 1px solid blue;
}

.box div {
  width: 100px;
  height: 100px;
  border: 1px solid darkgray;
}

.box div:nth-child(1) {
  /*  How do I push the first div tag to the top? */
  background-color: lightgray;
}

.box div:nth-child(2) {
  background-color: lightblue;
}

<div class="box">
  <div>One</div>
  <div>Two</div>
</div>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:2)

向第n个子(2)div添加margin top和bottom auto。然后添加-50%的Y变换以将其与中心对齐。这假设两个div的高度相同。

.box div:nth-child(2){
  background-color: lightblue;
  margin-top: auto;
  margin-bottom: auto;
  transform: translateY(-50%);
}