我有一个简单的盒子网格,我想与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实现这一目标?我想避免%margins并让flexbox在这里完成所有工作,因为它在响应式设置中非常好用.
好吧,你可以做到,但代价是破坏一点 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)