8 个项目的独特 grid/flex 布局

Unique grid/flex layout for 8 items

我正在尝试解决 grid/flex 的特定布局问题,但似乎找不到合适的答案。我有 8 个项目要 运行 在 3 3 2 布局中。网格使其变得简单,但我希望最后一行中的两个项目居中而不是左对齐。

所附图片是我想要实现的。 3 column, 8 item grid

使用 6 列网格,而不是 3 列,然后相应地放置您的项目。

.box {
  border: 1px solid red;
  height:50px;
  grid-column: span 2;
}

.grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap:1em;
}

.box:nth-child(7) {
  grid-column: 2 / span 2;
}

.box:nth-child(8) {
  grid-column: 4 / span 2;
}
<div class="grid">
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
</div>

Flexbox 要求在项目上设置宽度为 c.1/3。

.box {
  border: 1px solid red;
  height: 50px;
}

.grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.box {
  flex: 0 0 30%;
}
<div class="grid">
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
</div>