【发布时间】:2017-04-17 14:52:57
【问题描述】:
我的容器中有未知数量的元素需要包装,外部没有边距,但它们之间的边距最小。
我还需要用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;
}
<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>
这可以正常工作,只是最后一行的间距是关闭的,如您在屏幕截图中所见:
如果我们不知道会有多少列(使用 flexbox 或除 javascript 之外的其他东西),有什么方法可以让它工作?
【问题讨论】:
-
等几年。 Flexbox level 2 可能会添加一些功能来解决这个问题。
-
flex 容器中的最后一行对齐可能是当今 flexbox 中#1 缺失的功能。另一个常见问题是
column wrap的各种缺陷。希望这两个都在 flexbox 规范的下一个版本中得到解决。 -
有没有我们可能忽略的不使用 flexbox 的方法?