在flexbox中垂直居中对象

时间:2015-11-01 00:22:36

标签: html css css3 flexbox vertical-alignment

我要在flexbox中垂直对齐项目。这是我的代码: http://pastebin.com/1YKrYxA3

代码段:

.flex-conteneur {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  width: 1026px;
  height: 300px;
  background-color: gray;
  font-color: white;
  margin-left: auto;
  margin-right: auto;
  justify-content: space-around;
}
.colone1 {
  width: 180px;
  height: 100px;
  background-color: black;
  color: white;
  font-family: arial;
  font-size: 0.9em;
  align-items: center;
}
.colone2 {
  width: 400px;
  height: 150px;
  background-color: black;
  color: white;
  font-style: italic;
  font-family: arial;
  font-size: 0.9em;
}
.colone3 {
  width: 200px;
  height: 100px;
  background-color: black;
  color: white;
  font-style: italic;
  font-family: arial;
  font-size: 0.9em;
}
.titre {
  width: 1024px;
  height: 20px;
  background-color: gray;
  color: white;
  font-family: arial;
  font-size: 1.5em;
  font-family: "Arial Black"
}
<div class="flex-conteneur">
  <div class="titre">
    Programmation Web : INF2005
  </div>
  <ul class="colone1">
    <li>
      <a href "#">Acceuil</a>
    </li>
    <li>
      <a href "#">Notes de cours</a>
    </li>
    <li>
      <a href "#">Atelirs</a>
    </li>
    <li>
      <a href "#">Travaux Pratiques</a>
    </li>
  </ul>

  <div class="colone2">
    Ce gabarit doit être structuré avec des div et mise en forme avec CSS
  </div>

  <div class="colone3">
    Colone 3 : contenu secondaire
  </div>
</div>

我尝试使用align-content似乎不起作用。

2 个答案:

答案 0 :(得分:3)

align-content仅影响多行灵活容器;它对齐包含的行。

您需要align-items,这会影响实际的展示项目。

答案 1 :(得分:1)

在查看代码时,任何地方都没有align-content属性。它在您的代码中不存在。

align-content属性管理沿着flex容器的横轴的多行flex项的对齐。此属性对Flex容器中的单个行没有影响。

虽然没有align-content,但有align-items声明。

.colone1 {
    width: 180px;
    height: 100px;
    background-color: black;
    color: white;
    font-family: arial;
    font-size: 0.9em;
    align-items: center;
}

然而,问题在于,当它仅适用于Flex容器时,您已将align-items属性应用于弹性项目。

如果您的目标是将ul的内容与类colone1垂直居中,那么您还必须应用display: flex,因此Flex项目也会变为灵活容器。

如果您的目标是垂直居中.colone1,则需要将align-items: center应用于灵活容器(.flex-conteneur)。

某些弹性属性仅适用于弹性项目。其他仅限于柔性容器。有关按父母和子女划分的属性列表,请参阅此文章:A Complete Guide to Flexbox