【发布时间】:2017-07-06 09:07:20
【问题描述】:
我想用 flexbox 设置一个简单的 elastic* 网格...
.container{
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
...但是我希望外边距等于项目之间的间距。
*“弹性”是指宽度不固定。它们都是百分比,因此在不同的屏幕宽度下总宽度不同。
这似乎不是justify-content: space-between 的默认行为。它在每个项目“周围”生成相等的空间,但空间不会像边距那样折叠。所以结果是“中间”空间的宽度是最右边和最左边的两倍(假设你的 flex-direction 是row)。
在下面的草图中,第一张图是justify-content: space-between 自然所做的。注意宽度 A 和 B。第二张图是我想要的(只有一个一致的排水沟 C)。
flexbox 可以做到这一点吗?
更新
如果可能的话,我想避免添加“行”包装元素。伪元素解决方案听起来就像一张票(请参阅下面的答案),但让我们解决一下,以便项目可以是未确定的数字(并换行到新行)
【问题讨论】:
-
喜欢插图。
-
@Michael_B 实际上,我希望它根据断点而有所不同。这就是为什么我试图避免使用行包装器。作为一个简单的概念证明,假设 2/row 最多 1000px,然后 3/row。你认为我们可以使用
:nth-child()做到这一点吗?或者也许没关系...... -
发布了一个 3:rd 示例,使用断点
-
刚刚在搜索另一个问题时遇到了这个问题。
justify-content: space-around;不是一个选项吗?