Jam*_*son 11 html css css3 flexbox
我在容器中有一个未知数量的元素,需要在外部没有边距,但它们之间的边距最小.
我还需要这些是合理的,space-between
最后一行左对齐.
我试图用flexbox这样做:
.outside {
border: 1px solid black;
}
.container {
margin: -5px;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.container:after {
content: '';
flex: auto;
}
.box {
background: red;
width: 50px;
height: 50px;
margin: 5px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="outside">
<div class="container">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这可以正常工作,但最后一行的间距是关闭的,如屏幕截图所示:
如果我们不知道会有多少列(使用flexbox或javascript之外的其他内容),有没有办法让它工作?
最后一行对齐是flexbox的常见问题。
要考虑的一种方法是在最后一个可见项目之后使用不可见的伸缩项目。简而言之,我只称它们为“幻影道具”。
.outside {
border: 1px solid black;
}
.container {
margin: -5px;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.container:after {
content: '';
flex: auto;
}
.box {
background: red;
width: 50px;
height: 50px;
margin: 5px;
}
.hidden {
visibility: hidden;
margin: 0 5px;
height: 0;
}
Run Code Online (Sandbox Code Playgroud)
<div class="outside">
<div class="container">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box hidden"></div>
<div class="box hidden"></div>
<div class="box hidden"></div>
<div class="box hidden"></div>
<div class="box hidden"></div>
<div class="box hidden"></div>
<div class="box hidden"></div>
<div class="box hidden"></div>
<div class="box hidden"></div>
<div class="box hidden"></div>
<div class="box hidden"></div>
<div class="box hidden"></div>
<div class="box hidden"></div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)