使用CSS Flexbox的`justify-content:space-between`但左对齐最后一行

JVG*_*JVG 6 css css3 flexbox

我有一个简单的盒子网格,我想与Flexbox一起响应.

框的数量由用户生成,因此我需要动态工作.这是所在的代码片段:

<div class="wrap">
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

.wrap{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
}

.thumb{
  width:150px;
  height:150px;
  background-color:black;
  margin-bottom:20px;
}
Run Code Online (Sandbox Code Playgroud)

这是上面代码的样子:

Flexbox最后一行左对齐

这是我希望它看起来像:

在此输入图像描述

如何使用flexbox实现这一目标?我想避免%margins并让flexbox在这里完成所有工作,因为它在响应式设置中非常好用.

val*_*als 1

好吧,你可以做到,但代价是破坏一点 DOM。插入高度为 0 的填充元素(与一行中可容纳的最大元素数一样多),然后就得到了

.wrap{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
}

.thumb{
  width:150px;
  height:150px;
  background-color:black;
  margin-bottom:20px;
}


.filler{
  width:150px;
  height:0px;
  margin: 0px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="wrap">
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="filler"></div>
  <div class="filler"></div>
  <div class="filler"></div>
  <div class="filler"></div>
  <div class="filler"></div>
  <div class="filler"></div>
  <div class="filler"></div>
  <div class="filler"></div>
  <div class="filler"></div>
</div>
Run Code Online (Sandbox Code Playgroud)