html - flex 容器中的等高行

标签 html css flexbox

如您所见,第一中的list-items具有相同的高度。但是第二个 中的项具有不同的高度。我希望所有元素都具有统一的高度

有没有办法在不提供固定高度并且只使用flexbox的情况下实现这一目标?

enter image description here

这是我的代码

.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>

最佳答案

答案是否定的。

flexbox规范中给出了原因:

6. Flex Lines

In a multi-line flex container, the cross size of each line is the minimum size necessary to contain the flex items on the line.

换句话说,当基于行的 flex 容器中有多行时,每行的高度(“交叉尺寸”)是包含该行的 flex 元素所需的最小高度。

然而,等高行在 CSS 网格布局中是可能的:

否则,请考虑使用 JavaScript 替代方案。

关于html - flex 容器中的等高行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36004926/

相关文章:

html - 为什么 FireFox 绘制的轮廓距离 div 边缘那么远?

javascript - javascript 可以按 "style"值过滤已过滤的 <li> 标签列表吗?

html - CSS 全屏背景在开发工具中有效,但在真实浏览器中无效

javascript - 重置时输入字段文本CSS

html - flexbox 和容器宽度

javascript - Trustpilot cross-origin error with carousel integration

javascript - 我可以在 php 中使用以 .html 编码的条件警报吗

html - 打印或转换为 PDF 时不显示 CSS 边框

html - Safari/Chrome flex-parent 100% height + padding 和 100% height child

html - 如何在中间对齐 3 个相邻的 div?