css - 使用 css 网格将元素成对放置在两行中

标签 css flexbox css-grid

我正在尝试按特定顺序呈现元素,请看图片: enter image description here

即有无限多个元素,按列,每列有两个元素。您是否有任何想法如何使用网格或 flexbox 或任何其他方式(可能通过组合它们)对此进行编码?我知道我可以用表格来做到这一点,但这次我尽量避免使用它们。

最佳答案

nth-child() 在这里可以提供帮助

.box {
  display:grid;
  grid-auto-flow:column dense; /* column flow with "dense" to fill all the cells */
  grid-template-rows:50px 50px; /* 2 rows */
  grid-auto-columns:50px;
}
.box span:nth-child(4n + 2) { /* this will do the trick*/
   grid-row:1; /* we make 2 in the first row and 3 will be pushed to second row */
}

/* irrelevant styles */
.box {
  counter-reset:num;
  grid-gap:5px;

}
.box span {
  background:yellow;
  font-size:25px;
}

.box span::before {
  content:counter(num);
  counter-increment:num;
}
<div class="box">
 <span></span>
 <span></span>
 <span></span>
 <span></span>
 <span></span>
 <span></span>
 <span></span>
 <span></span>
 <span></span>
 <span></span>
 <span></span>
 <span></span>
 <span></span>
 <span></span>
 <span></span>
 <span></span>
</div>

关于css - 使用 css 网格将元素成对放置在两行中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65504567/

相关文章:

javascript - 使用jCrop时如何使头像预览图像流畅

html - 辅助 div 和复选框以获得更好的外观

html - Flexbox:内联为 html 属性还是 CSS 类?

javascript - CSS flex : last and first item in a row selector

html - css - 使用 grid-auto-column 创建动态宽度

css - 如何跨越到隐式网格中的最后一列?

css - 浏览器如何渲染图像?

javascript - Bootstrap Grid 将内容调整到页面上的新位置

html - CSS嵌套的flexbox为什么在有空间时最后一个字换行?

css - 处理上面 Bourbon Neat 2.0 中网格列附带的强制性左边距的最佳方法是什么?