设置弹性框项目之间距离的更好方法
要设置我在容器margin: 0 5px
上.item
和margin:0-5px
容器上使用的flexbox项之间的最小距离。对我来说,这似乎是一种hack,但是我找不到更好的方法来做到这一点。
#box { display: flex;
width: 100px;
margin: 0 -5px;
}
.item {
background: gray;
width: 50px;
height: 50px;
margin: 0 5px;
}
<div id='box'>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
</div>
回答:
- Flexbox的利润率没有下降。
- Flexbox没有类似于
border-spacing
表的任何东西(除了CSS属性gap
,大多数浏览器都无法很好地支持CSS属性,caniuse)
因此,实现您的要求会有点困难。
以我的经验,不使用:first-child
/ :last-child
且不作任何修改就flex-wrap:wrap
可以工作的“最干净”的方式是padding:5px
在容器和margin:5px
孩子身上设置。这将10px
在每个孩子之间以及每个孩子与其父母之间产生差距。
.upper{
margin:30px;
display:flex;
flex-direction:row;
width:300px;
height:80px;
border:1px red solid;
padding:5px; /* this */
}
.upper > div
{
flex:1 1 auto;
border:1px red solid;
text-align:center;
margin:5px; /* and that, will result in a 10px gap */
}
.upper.mc /* multicol test */
{flex-direction:column;flex-wrap:wrap;width:200px;height:200px;}
<div class="upper">
<div>aaa<br/>aaa</div>
<div>aaa</div>
<div>aaa<br/>aaa</div>
<div>aaa<br/>aaa<br/>aaa</div>
<div>aaa</div>
<div>aaa</div>
</div>
<div class="upper mc">
<div>aaa<br/>aaa</div>
<div>aaa</div>
<div>aaa<br/>aaa</div>
<div>aaa<br/>aaa<br/>aaa</div>
<div>aaa</div>
<div>aaa</div>
</div>
以上是 设置弹性框项目之间距离的更好方法 的全部内容, 来源链接: utcz.com/qa/398926.html