【发布时间】:2018-07-08 07:07:10
【问题描述】:
当使用space-around 作为justify-content 的参数时,它将在容器内均匀地分隔项目。我想要的是左侧的所有项目 start (flex-start),但具有与space-around 相同的边距。
我认为这说明了问题:
.container {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
width: 100%;
border: 1px solid red;
}
.item {
flex: 0 0 16%; /*6 items per line leaving some for margin*/
border: 1px solid black;
box-sizing: border-box;
}
<div class="container">
<div class="item">ITEM</div>
<div class="item">ITEM</div>
<div class="item">ITEM</div>
<div class="item">ITEM</div>
<div class="item">ITEM</div>
<div class="item">ITEM</div>
<div class="item">ITEM</div>
<div class="item">ITEM</div>
</div>
我想要的是让第二行换行并占据前 2 列。我知道我可以在 .item 类上指定一个填充并将 flex 属性设置为 flex-start,但我不能总是 100% 确定填充的大小,因为它可以针对多个设备进行缩放。
这可以这样证明:
.container {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
width: 100%;
border: 1px solid red;
}
.item {
flex: 0 0 16%; /*6 items per line leaving some for padding*/
border: 1px solid black;
box-sizing: border-box;
margin-right: 0.66%
}
<div class="container">
<div class="item">ITEM</div>
<div class="item">ITEM</div>
<div class="item">ITEM</div>
<div class="item">ITEM</div>
<div class="item">ITEM</div>
<div class="item">ITEM</div>
<div class="item">ITEM</div>
<div class="item">ITEM</div>
</div>
红色边框之间项目的整体间距不对,又不知道具体数值,不知道怎么设置成这样。
【问题讨论】:
-
您在寻找
justify-content: space-between吗? -
否,因为在我的第一个示例中,这会使第二行的 2 个项目转到第一列中的一个和最后一列中的一个。
-
youtube.com/watch?v=0e02dl66PYo 这真的很好帮助你了解你可以用弹性盒子做什么
-
@BradleyCoupland 它是否涵盖了我的特定场景(它是一个 20 分钟的视频)?有很多资源可以解释 flexbox,但我没有找到任何涵盖这种特定场景的资源。
-
这是 flex 的限制,如果您希望第二行(假设动态的项目数量)向左对齐,那么最好自己指定边距。或者(这是我在工作中所做的并且我们的开发团队同意这一点),您可以添加空项目,以便每行始终有 6(或 n 个)项目。这样它就会一直正确对齐。这已经在这里问了stackoverflow.com/questions/16377972/…