You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让CSS Grid列元素两两对应同行显示?

实现CSS Grid左右列元素两两同行对齐

我需要让CSS Grid的左右列元素两两对应同行显示,期望效果如下:

+---+---+
| A | D |
+---+---+
| B | E |
+---+---+
| C | F |
+---+---+

而非当前的显示效果:

+---+---+
| A |   |
+---+---+
| B |   |
+---+---+
| C | D |
+---+---+
|   | E |
+---+---+
|   | F |
+---+---+

我尝试过使用grid-row属性,但希望避免通过id来定位元素,当前代码如下:

CSS代码

.container{
  display: grid;
  grid-template-columns: auto auto;
  background: yellow
}

.left {
  grid-column: 1;
  background:green;
}

.right{
  grid-column : 2;
  background: olive
}

HTML代码

<div class="container">
  <div class="left">A</div>
  <div class="left">B</div>
  <div class="left">C</div>
  
  <div class="right">D</div>
  <div class="right">E</div>
  <div class="right">F</div>
</div>

解决方案

不需要给元素加id,通过CSS的:nth-child()伪类选择器就能实现对应行的对齐:

.container{
  display: grid;
  grid-template-columns: auto auto;
  background: yellow
}

.left {
  grid-column: 1;
  background:green;
}

.right{
  grid-column : 2;
  background: olive
}

/* 左侧第n个元素对应第n行 */
.left:nth-child(1) { grid-row: 1; }
.left:nth-child(2) { grid-row: 2; }
.left:nth-child(3) { grid-row: 3; }

/* 右侧第n个元素对应第n行 */
.right:nth-child(4) { grid-row: 1; }
.right:nth-child(5) { grid-row: 2; }
.right:nth-child(6) { grid-row: 3; }

如果左右元素数量较多,也可以用CSS预处理器(如Sass)的循环来简化代码,避免重复书写。这种写法完全依赖类选择器和伪类,无需额外给元素添加id,就能精准实现左右元素两两同行的效果。

内容的提问来源于stack exchange,提问作者Aurore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 10:03:31