html - CSS 网格 : different alignment for every second row

标签 html css css-grid

是否可以将每第二行与 CSS Grid 对齐?数量.item未知。

这是 HTML/CSS:

.container {
  grid-template-columns: repeat(4, 1fr);
}
<ul class="container">
  <li class="item"></li>
  <li class="item"></li>
  <li class="item"></li>
  <li class="item"></li>
  <li class="item"></li>
  <!-- ... -->
</ul>


预期解决方案:
enter image description here

我也对 CSS Grid 以外的其他解决方案持开放态度。

最佳答案

您可以使用 nth-child()以创建重复模式。

ul {
  display: grid;
  grid-template-columns: repeat(6, 1fr);/* 6 = 4 + 2 empty cells */
  grid-auto-rows: 50px;/*demo purpose */
}

li {
  display: block;
  border: solid 1px;
}

li:nth-child(8n-3) {
  grid-column: 3;
}

li:nth-child(8n + 1) {
  grid-column: 1
}

/*demo purpose */
ul{counter-reset:lis;}
li:before {counter-increment:lis;content:counter(lis);}
<ul>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
</ul>

关于html - CSS 网格 : different alignment for every second row,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62000236/

相关文章:

css - 边框上的背景图像

javascript - 如何在 Angular 1 中为动态的 div(重复元素)执行 $anchorscroll

html - 使用网格单元格对齐在 div 内跨度

html - Flex/Grid 布局不适用于按钮或字段集元素

javascript - 在页面上的点后禁用向上滚动

html - 如何将 svg 放入 span 中并让 span 包围 svg?

html - 如何隐藏 pandas <1.4 中的索引级别

javascript - 文本输入验证函数Javascript

jquery - 在Jquery Mobile中如何使多div到页面中心

html - 无法在CSS网格中创建一列