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/57401679/

相关文章:

html - 使用 sed 从文件中删除空的 HTML 标签

jquery - 设置高度jquery的问题

javascript - 如何在鼠标移出时停止 jQuery 悬停函数队列?

javascript - 移动优化 : Make notification menu with position:absolute scrollable

css - 为什么 -webkit-box-flex 属性对此不起作用?

html - 如何使用 flex 创建两个高度不相等的并排列?

php - MySQL 返回包含 HTML 的空白行

html - 选择下拉列表不显示所选元素

css - 使用 div 标签的页面布局

html - 当元素占用不同宽度时,将 Flexbox 中的最后一个元素移动到新行