动态垂直和水平居中(对齐项目对齐内容)

简单示例(以单个元素为中心)

HTML

<div class="aligner">
  <div class="aligner-item">…</div>
</div>

CSS

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

.aligner-item {
  max-width: 50%; /*for demo. Use actual width instead.*/
}

这是一个演示

推理

属性 描述
align-items center 除了 flex-direction 指定的轴之外,这使得沿轴的中心元素,即水平柔性盒的垂直居中和垂直柔性盒的水平居中。
justify-content center 这使元素沿着 flex-direction 指定的轴居中。即,对于水平(flex-direction: row)flexbox,它水平居中,对于垂直 flexbox(flex-direction: column)flexbox,它垂直居中)

个别属性示例

以下所有样式都应用于此简单布局:

<div id="container">
  <div></div>
  <div></div>
  <div></div>
</div>

其中 #containerflex-box

示例:水平 flexbox 上的 justify-content: center

CSS:

div#container {
  display: flex;
  flex-direction: row;
  justify-content: center;
}

结果:

水平居中

这是一个演示

示例:垂直 flexbox 上的 justify-content: center

CSS:

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

结果:

垂直居中

这是一个演示

示例:水平 Flexbox 上的 align-content: center

CSS:

div#container {
  display: flex;
  flex-direction: row;
  align-items: center;
}

结果:

水平居中,对齐中心

这是一个演示

示例:垂直 flexbox 上的 align-content: center

CSS:

div#container {
  display: flex;
  flex-direction: column;
  align-items: center;
}

结果:

垂直居中,对齐中心

这是一个演示

示例:用于在水平 Flexbox 上居中的组合

div#container {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

结果:

水平居中两种组合

这是一个演示

示例:用于在垂直 Flexbox 上居中的组合

div#container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

结果:

水平居中两种组合

这是一个演示