html - CSS Flexbox : wrap item tile grid, 每行指定元素?

标签 html css flexbox

我有一个包含 20 个元素的 div:

       <div class="brand-illustrations">
          <img src="modules/foundation/assets/images/pb_brand_icons_01_Shipping.svg">
          <img src="modules/foundation/assets/images/pb_brand_icons_02_Time_Savings.svg">
          <img src="modules/foundation/assets/images/pb_brand_icons_03_Increase.svg">
          <img src="modules/foundation/assets/images/pb_brand_icons_04_Decrease.svg">
          <img src="modules/foundation/assets/images/pb_brand_icons_05_Money.svg">
          <img src="modules/foundation/assets/images/pb_brand_icons_06_Money_Savings.svg">
          <img src="modules/foundation/assets/images/pb_brand_icons_07_Accuracy.svg">
          ...etc...
        </div>

然后我将封闭的 div 设为 flexbox:

.brand-illustrations {
   display: flex;
   justify-content: space-between;
   flex-wrap: wrap;
   img {
     display: block;
   }
}

这符合预期: enter image description here

但我更愿意在每第 5 项之后换行到下一行。我知道 n-th-child,但不确定将它用于 flex 元素的最佳方式。

最佳答案

您不能强制 flexbox 换行,因为它没有网格功能。您最多可以使用“flex: 0 0 20%”将每个 flex-item 的宽度固定为 20%。但我建议将每个图像包装在一个 div 中,因为它们在 flexbox 下会产生意想不到的结果。

Codepen Demo

.container {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.box {
  flex: 0 0 20%;
  text-align: center;
  margin-bottom: 1em;
}
img {
  max-width: 100%;
  min-width: 0;
  height: auto;
}
<div class="container">
  <div class="box">
    <img src="http://placekitten.com/100/100" alt="" />
  </div>
  <div class="box">
    <img src="http://placekitten.com/100/100" alt="" />
  </div>
  <div class="box">
    <img src="http://placekitten.com/100/100" alt="" />
  </div>
  <div class="box">
    <img src="http://placekitten.com/100/100" alt="" />
  </div>
  <div class="box">
    <img src="http://placekitten.com/100/100" alt="" />
  </div>
  <div class="box">
    <img src="http://placekitten.com/100/100" alt="" />
  </div>
  <div class="box">
    <img src="http://placekitten.com/100/100" alt="" />
  </div>
  <div class="box">
    <img src="http://placekitten.com/100/100" alt="" />
  </div>
  <div class="box">
    <img src="http://placekitten.com/100/100" alt="" />
  </div>
  <div class="box">
    <img src="http://placekitten.com/100/100" alt="" />
  </div>
</div>

关于html - CSS Flexbox : wrap item tile grid, 每行指定元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38358633/

相关文章:

javascript - ionic 框架中的选项卡

html - 使用 class ="sponsor_logo"或 class ="sponsor-logo"不会显示 div

javascript - 带有 3 级深度 jquery 下拉菜单的对 Angular 线鼠标悬停

html - 在非矩形对象周围 float 文本

php - 无法在文本前面获得 Facebook 字形

html - 如何使用第 n 个子属性连续显示 3 个 div?

html - 是否可以在不使用媒体查询的情况下更改 flex 元素的顺序?

css - 将 flex 与中心的特定元素对齐

javascript - 使用 SVG 对象的 onloadwff 中的 TypeError

css - 自动网格列,不换行到下一行