如何在flex元素内垂直居中文本[重复]

Posted

技术标签:

【中文标题】如何在flex元素内垂直居中文本[重复]【英文标题】:How to vertically center text inside flex element [duplicate] 【发布时间】:2018-07-25 14:47:11 【问题描述】:

我有一个元素,它可以包含 1-3 个其他元素。假设它是这样的:

<div id="elem1">
   <div class="inner_element">aaaa</div>
   <div class="inner_element">bbbb</div>
</div>

内部元素必须按列方向定位。我需要他们的文本垂直和水平居中。

我的 CSS 是这样的:

#elem1 
    display: flex;
    flex-direction: column;


.inner_element 
    text-align: center;
    flex: 1 100%;

文本是水平对齐的,但我找不到任何 flex 属性的组合,这也会使文本垂直对齐。请问,任何人都可以建议,如何在内部元素中垂直居中文本?

【问题讨论】:

如果您的意思是 .inner_element 应该与父级的高度相同,并且它们的文本应该居中对齐,请这样做:jsfiddle.net/apuaov5g/5 【参考方案1】:

要使弹性项目沿主轴居中(在您的情况下为列/垂直),请将justify-content: center; 添加到容器中(并从子项中删除弹性设置):

#elem1 
  height: 180px;
  border: 1px solid #ddd;
  display: flex;
  flex-direction: column;
  justify-content: center;


.inner_element 
  text-align: center;
<div id="elem1">
  <div class="inner_element">aaaa</div>
  <div class="inner_element">bbbb</div>
</div>

【讨论】:

【参考方案2】:

你必须给你的包装器一个固定的高度,这样内部元素就可以参考它来计算中心。

【讨论】:

以上是关于如何在flex元素内垂直居中文本[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 flex 元素中垂直居中文本?

如何垂直对齐一个flex元素子元素[重复]

flex容器内的居中元素正在增长并溢出顶部[重复]

flex容器内的居中元素正在增长并溢出顶部[重复]

在方形(flex)div中垂直居中文本[重复]

关于flex布局垂直居中