使用flexbox垂直对齐单个子元素

时间:2016-04-14 11:48:10

标签: html css flexbox

我正在尝试均匀分布可变数量的列,其中包含可变数量的垂直居中的子元素。我几乎就是我想要的地方,但是如果我将子元素的数量减少到一个,则垂直对齐失败(第一行和第五行)。

我做错了什么?

代码(http://codepen.io/anon/pen/bpvMda):

.myView {
  margin: auto;
  display: flex;
  flex-direction: row;
  justify-content: space-around;
  height: 500px;
  width: 500px;
}
.wpType {
  flex: 0 1 auto;
  display: flex;
  flex-flow: row wrap;
  align-items: space-around;
  align-content: center;
  padding: 0;
  margin: 0;
  list-style: none;
  border: 1px solid silver;
}
.wpType:nth-child(even){
  background: blue;
}
.wpType:nth-child(odd){
  background: red;
}
.wp {
  flex: 0 1 auto;

  padding: 5px;
  width: 100px;
  height: 100px;
  margin: 10px;
  background: white;
  line-height: 100px;
  color: white;
  font-weight: bold;
  font-size: 2em;
  text-align: center;
}
<div class="myView">
  <div class="wpType">
    <div class="wp"></div>
  </div>
  <div class="wpType">
    <div class="wp"></div>
    <div class="wp"></div>
    <div class="wp"></div>
  </div>
  <div class="wpType">
    <div class="wp"></div>
    <div class="wp"></div>
    <div class="wp"></div>
  </div>
  <div class="wpType"><div class="wp"></div>
    <div class="wp"></div></div>
  <div class="wpType"><div class="wp"></div></div>
</div>

1 个答案:

答案 0 :(得分:4)

在所有居中元素的父div上使用这些属性。

display: -webkit-flex;
display: flex;
-webkit-flex-direction: column;
flex-direction: column;
-webkit-align-items: center;
align-items: center;
-webkit-justify-content: center;
justify-content: center;

this