要设置flexbox项目之间的最小距离,我使用margin: 0 5px on .item和margin: 0 -5px on container。对我来说,这似乎是一种hack,但我找不到更好的方法来做到这一点。
#箱{
显示:flex;
宽度:100 px;
Margin: 0 -5px;
}
.item {
背景:灰色;
宽度:50 px;
高度:50 px;
边距:0 5px;
}
< div id =“盒子”>
< div class = '物品' > < / div >
< div class = '物品' > < / div >
< div class = '物品' > < / div >
< div class = '物品' > < / div >
< / div >
你可以使用& > * + *作为选择器来模拟一个弹性间距(对于单行):
#box{显示:flex;宽度:230 px;轮廓:1px纯蓝色;}
.item{背景:灰色;宽度:50 px;身高:100 px;}
/* ----- Flexbox gap: ----- */
#box > * + * {
margin-left: 10 px;
}
< div id =“盒子”>
< div class = '物品' > < / div >
< div class = '物品' > < / div >
< div class = '物品' > < / div >
< div class = '物品' > < / div >
< / div >
如果你需要支持伸缩包装,你可以使用wrapper元素:
.flex{显示:flex;flex-wrap:包装;}
.box{背景:灰色;身高:100 px;min-width: 100 px;flex:汽车;}
.flex包装{轮廓:1px固体红色;}
/* -----伸缩间隙10px: ----- */
.flex > * {
保证金:5 px;
}
.flex {
保证金:5 px;
}
.flex-wrapper {
宽度:400 px;/* optional */
溢出:隐藏;/* optional */
}
< div class = ' flex-wrapper ' >
< div class = ' flex ' >
< div class = '盒子' > < / div >
< div class = '盒子' > < / div >
< div class = '盒子' > < / div >
< div class = '盒子' > < / div >
< div class = '盒子' > < / div >
< / div >
< / div >
你可以使用透明边框。
我在尝试构建一个灵活的网格模型时考虑过这个问题,该模型可以为旧的浏览器退回到表格+表格单元模型。在我看来,作为圆柱排水沟的Borders似乎是最合适的选择。例如,表格单元格没有边距。
e.g.
.column{
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-bottom: 10px solid transparent;
}
还要注意你需要min-width: 50px;flexbox。flex模型不会处理固定大小,除非你执行flex: none;在你想要固定的子元素上,因此被排除在“可伸缩”之外。http://jsfiddle.net/GLpUp/4/
但是所有列和flex一起:none;不再是弹性模型。
这里有一个更接近flex模型的东西:http://jsfiddle.net/GLpUp/5/
所以你可以正常使用页边距如果你不需要旧浏览器的表单元格回退。http://jsfiddle.net/GLpUp/3/
背景剪辑:填充盒;在使用背景时将是必要的,否则背景将流入透明边框区域。