【发布时间】: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 项目的内容 的更多详细信息,请参阅 here 和 here。干杯!
标签: html css vertical-alignment flexbox