如您所见,第一个 list-items
中的 row
具有相同的 height
。但是第二个项目 row
有不同的 heights
。我希望所有项目都有统一的 height
。
有没有办法在不提供 固定高度 且仅使用 flexbox 的情况下实现这一目标?
这是我的 code
.list {
display: flex;
flex-wrap: wrap;
max-width: 500px;
}
.list-item {
background-color: #ccc;
display: flex;
padding: 0.5em;
width: 25%;
margin-right: 1%;
margin-bottom: 20px;
}
.list-content {
width: 100%;
}
<ul class="list">
<li class="list-item">
<div class="list-content">
<h2>box 1</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</div>
</li>
<li class="list-item">
<div class="list-content">
<h3>box 2</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</div>
</li>
<li class="list-item">
<div class="list-content">
<h3>box 2</h3>
<p>Lorem ipsum dolor</p>
</div>
</li>
<li class="list-item">
<div class="list-content">
<h3>box 2</h3>
<p>Lorem ipsum dolor</p>
</div>
</li>
<li class="list-item">
<div class="list-content">
<h1>h1</h1>
</div>
</li>
</ul>
原文由 Jinu Kurian 发布,翻译遵循 CC BY-SA 4.0 许可协议
答案是不。
flexbox 规范中提供了原因:
换句话说,当基于行的弹性容器中有多行时,每行的高度(“交叉尺寸”)是包含该行的弹性项目所需的最小高度。
然而,等高行在 CSS 网格布局中是可能的:
否则,请考虑使用 JavaScript 替代方案。