【问题标题】:How to get vertical gap between images in a flex container如何在 flex 容器中获取图像之间的垂直间隙
【发布时间】:2018-08-04 18:50:20
【问题描述】:
<div class='parent'>
<img class='child' src='...' alt='img'>
<img class='child' src='...' alt='img'>
<img class='child' src='...' alt='img'>
<img class='child' src='...' alt='img'>
<img class='child' src='...' alt='img'>
<img class='child' src='...' alt='img'>
</div>

css

.parent{
display:flex;
flex-wrap:wrap;
justify-content:space-between;
align-content: space-between;
}

.child{
display:block;
width:calc(25% - 10px);
margin:0 auto;
}

图像有 10px 的水平间隙,但没有垂直间隙(一列中图像之间的距离。

如何在childsparent 之间没有填充/边距的情况下添加此间隙。我只需要图像之间的间隙,但在两个方向上。

另外,图片没有固定的宽度和高度。

【问题讨论】:

  • 只给图片margin-bottom:10px?
  • 或 max-width:25% + padding:5px + mind box-sizing...有很多方法。每个图像的比例是否相同?

标签: html css flexbox


【解决方案1】:

这可以是 CSS-grid 而不是 flexbox 的用例:

.parent {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: 10px; /*define the distance between elements*/
  border: 1px solid;
}

.child{
  height:50px;
  border:1px solid red;
}
<div class='parent'>
  <div class='child'></div>
  <div class='child'></div>
  <div class='child'></div>
  <div class='child'></div>
  <div class='child'></div>
  <div class='child'></div>
  <div class='child'></div>
  <div class='child'></div>
</div>

【讨论】:

  • 不太确定 op 的真实比例图像。 object-fit 也可能是一个线索;)
  • @G-Cyr 是的,但我怀疑它们具有相同的比例,因为它们需要在水平和垂直方向上具有相同的间隙;)
  • 我从问题的最后一行不太确定;)