css - 元素之间的 Flexbox 填充,但边缘不填充

标签 css flexbox

我有一个像这样的基本 Flexbox 实现

.holder {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  max-width: 500px;
  background: wheat;
}

.col img {
  max-width: 100%;
}

.col {
  width: 20%;
  float: left;
  text-align: center;
}
<div class="holder">
  <div class="col">
    <img src="https://dummyimage.com/600x400/000/fff">
  </div>
  <div class="col">
    <img src="https://dummyimage.com/600x400/000/fff">
  </div>
  <div class="col">
    <img src="https://dummyimage.com/600x400/000/fff">
  </div>
  <div class="col">
    <img src="https://dummyimage.com/600x400/000/fff">
  </div>
  <div class="col">
    <img src="https://dummyimage.com/600x400/000/fff">
  </div>
  <div class="col">
    <img src="https://dummyimage.com/600x400/000/fff">
  </div>
  <div class="col">
    <img src="https://dummyimage.com/600x400/000/fff">
  </div>
  <div class="col">
    <img src="https://dummyimage.com/600x400/000/fff">
  </div>
  <div class="col">
    <img src="https://dummyimage.com/600x400/000/fff">
  </div>
  <div class="col">
    <img src="https://dummyimage.com/600x400/000/fff">
  </div>
</div>

我试图在每个元素之间添加一些填充,但不在边缘添加一些填充。

flexbox 是最好的解决方案吗?有人可以给我举个例子吗?

最佳答案

您可以使用 flex-basis 属性,在其中使用 calc() 设置初始宽度 功能:

.holder {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  max-width: 500px;
  background: wheat;
}

.col img {
  max-width: 100%;
}

.col {
  /*width: 20%;*/
  /*float: left; not necessary*/
  flex-basis: calc(20% - 5px);
  text-align: center;
}

/* addition, if desired */
img {
  display: block; /* removes bottom margin/whitespace; "vertical-align: bottom" does the same */
}
<div class="holder">
  <div class="col">
    <img src="https://dummyimage.com/600x400/000/fff">
  </div>
    <div class="col">
    <img src="https://dummyimage.com/600x400/000/fff">
  </div>
    <div class="col">
    <img src="https://dummyimage.com/600x400/000/fff">
  </div>
    <div class="col">
    <img src="https://dummyimage.com/600x400/000/fff">
  </div>
    <div class="col">
    <img src="https://dummyimage.com/600x400/000/fff">
  </div>
    <div class="col">
    <img src="https://dummyimage.com/600x400/000/fff">
  </div>
    <div class="col">
    <img src="https://dummyimage.com/600x400/000/fff">
  </div>
    <div class="col">
    <img src="https://dummyimage.com/600x400/000/fff">
  </div>
      <div class="col">
    <img src="https://dummyimage.com/600x400/000/fff">
  </div>
      <div class="col">
    <img src="https://dummyimage.com/600x400/000/fff">
  </div>
  </div>

关于css - 元素之间的 Flexbox 填充,但边缘不填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49381174/

相关文章:

html - 删除上面一行中高度不等的元素所产生的空间

html - Flexbox 两行宽度相同且溢出

reactjs - 当同一行中有其他组件时,如何使组件水平居中?

css - 为什么不使用设备宽度媒体查询?

javascript - Laravel 加载本地 css 和 js 资源非常慢

html - 绝对定位的图像从相对 div 出来

html - Flexbox 文本环绕

twitter-bootstrap - 当我使用渐变时,bootstrap btn 背景在点击时闪烁

css - 无论悬停不工作 IE6 和 IE7

html - 列反向灵活排序