CSS弹性框行,最后一行包含的项目少于列数,拉伸过大

ggazkfy8  于 2023-03-14  发布在  其他
关注(0)|答案(1)|浏览(129)

我有一个弹性框,其中有一堆项目设置为flex-grow: 1。这些项目将拉伸,直到一个新的列可以形成,然后所有移动需要。除了,当它达到5列目前只有3个剩余的项目为最后一行,他们拉伸到3个更大的项目比其余的,并填补了空间。我有justify-content设置为flex-start,但是我怎样才能使最后的那些项与它们上面的项的大小相匹配,并且恰好适合现有的列呢?
我试过设置不同的对齐方式,但唯一能得到适当大小的项目是固定大小,这会遇到间距问题。

k5ifujac

k5ifujac1#

据我所知,您希望子节点填充父节点的列,并使其大小相等,最好使用grid属性,这将自动放置子节点并为您调整宽度。

/* CSS */
.parent {
  display: grid;
  grid-template-columns: repeat(5, minmax(100px, 1fr));
  gap: 10px;
}

/* unrelated */
.child {
  background-color: #AAA;
  text-align: center;
}
<!-- -->
<div class="parent">
  <div class="child">content here</div>
  <div class="child">content here</div>
  <div class="child">content here</div>
  <div class="child">content here</div>
  <div class="child">content here</div>
  <div class="child">content here</div>
  <div class="child">content here</div>
  <div class="child">content here</div>
</div>

因为在这个CSS规则repeat()有两个参数,第一个参数指定列数,最后一个参数指定列宽,您可以分别在minmax()中放置最小和最大宽度,就像flex-grow: 11fr会使其拉伸以填充剩余宽度一样,您还可以使用gap属性设置子对象之间差距

相关问题