【问题标题】:Vertically centering text inside flexbox itemflexbox 项目内的文本垂直居中
【发布时间】:2015-02-28 01:04:25
【问题描述】:

我希望弹性项目占据全高,但它们内部的内容垂直居中。

justify-content: centre 不起作用,并且项目本身的align-self: centre 将其高度缩小到自己的内容,而我希望所有项目的高度相同。

在本例中,我希望数字垂直居中:http://codepen.io/ilyador/pen/ogYbWO?editors=110

.flex-container {
  padding: 0;
  margin: 0;
  list-style: none;
  display: flex;  
}

.flex-item {
  flex: 1 1;
  background: tomato;
  padding: 5px;
  margin-top: 10px;
  color: white;
  font-weight: bold;
  font-size: 3em;
  text-align: center;
  border: solid 1px red;
}
<ul class="flex-container">
  <li class="flex-item">1fbdms s s sdj dfkg kjfg dkfj gdfjkgdfkj gdfkjg dfkjgdkhdfjk gkjdfkjdfgdfg jkdfgdfjkgk </li>
  <li class="flex-item">2</li>
  <li class="flex-item">3</li>
  <li class="flex-item">4</li>
  <li class="flex-item">5</li>
  <li class="flex-item">6</li>
</ul>

【问题讨论】:

  • 只是想知道......为什么你需要物品有 100% 的高度?
  • 好吧,这就是我一直在问的问题......你需要这些项目占据 100% 的高度,因为每个项目都有自己的背景。
  • 你需要使用嵌套的弹性框:stackoverflow.com/a/32828900/3597276
  • @Andrey,嵌套弹性容器并不是什么大问题。并且您保留了使用 flex 属性的能力,这提供了比表格更大的灵活性。
  • @Andrey,你是对的。您不需要为内容添加包装器,因为 CSS 会自动创建 anonymous boxes。有关居中 flex 项目的内容 的更多详细信息,请参阅 herehere。干杯!

标签: html css vertical-alignment flexbox


【解决方案1】:

我能够通过这个实现你的数字的垂直居中:

.flex-item {
  display:flex;
  flex-direction:column;
  justify-content:space-around;
}

如果您希望某些东西垂直居中,请将容器设置为display:flex,然后使用justify-content 来完成它。使用justify-content,您可以将其设置为space-aroundcenter。两者都将实现您的目标。

http://codepen.io/anon/pen/RNoajg

【讨论】:

  • 这是一个很好的答案。请注意,这不适用于 IE 10 及更低版本。
  • @serverjohn flexbox 在 IE10 或更低版本中不起作用。所以...我很好。 caniuse.com/#search=flexbox
  • 太好了!谢谢!
【解决方案2】:

给弹性项目display: flexalign-items: center。弹性项目内容现在将垂直居中。

body {
  display: flex;
  height: 100vh;
  margin: 0;
}
body > div {
  flex: 1;
  display: flex;
  align-items: center;
  background: #F00;
}
body > div:nth-child(odd) {
  background: #F90;
}
<div>
  <p>This</p>
</div>
<div>
  <p>text</p>
</div>
<div>
  <p>is</p>
</div>
<div>
  <p>vertically</p>
</div>
<div>
  <p>centered</p>
</div>

【讨论】:

    猜你喜欢
    • 2013-03-21
    • 2017-06-15
    • 2016-09-10
    • 2017-07-18
    • 2017-12-12
    • 2011-11-28
    • 2013-10-15
    • 1970-01-01
    • 2021-09-04
    相关资源
    最近更新 更多