如何垂直对齐水平溢出的元素

How to vertically align elements with horizontal overflow

我希望能够创建一个 div 并设置大小(在本例中为 100x100)。

然后我希望能够在 div 中添加 x 个元素,在此示例中,我们可以说 10 个大小为 10x10 的按钮并将它们垂直对齐。

这意味着所有按钮都应位于一列中。

然后,如果我调整大小并将新尺寸设为 80x80,我应该有 2 列,第一列包含前 8 个按钮,然后是包含最后 2 个按钮的新列。

我试过

flex-wrap: wrap;
display: flex;
flex-direction: column;
align-content: flex-start;

它是垂直对齐的,但是当我调整大小时按钮总是越过底部。

我如何对齐所有元素,使它们垂直对齐,但如果高度不够,它应该溢出到一个新列中。所以没有设置列数,因为它可能是 x 列数,具体取决于大小。

这可以使用 css 吗?

我认为只有当你给容器一个最大高度时它才有效。这是你需要的吗?

.container {
  flex-wrap: wrap;
  display: flex;
  flex-direction: column;
  align-content: flex-start;
  max-height: 100px;
}

.button {
  width: 100px;
  height: 10px;
  border: solid thin black;
}
<div class="container">
  <div class="button"></div>
  <div class="button"></div>
  <div class="button"></div>
  <div class="button"></div>
  <div class="button"></div>
  <div class="button"></div>
  <div class="button"></div>
  <div class="button"></div>
  <div class="button"></div>
  <div class="button"></div>
</div>