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

CSS中重复div元素时的grid-area布局问题求解

解决CSS Grid布局重复样式问题

你当前的问题出在nth-child的选择器写法上,比如:nth-child(1n)会匹配所有元素(1n等价于1、2、3……),这就导致第7个元素会被第一个规则选中,和第1个元素重叠;第8个元素同时匹配多个规则,布局完全混乱。

要实现每6个元素重复一次你设计的布局,需要用6n + x的形式来定位每组的元素,x对应每组内的第1到第6个元素。修改后的CSS如下:

.services-cont {
  display: grid;
  grid-template-rows: repeat(3, 1fr);
  width: 100%;
  grid-template-columns: auto auto auto;
  grid-gap: 30px;
}

/* 每组第1个元素:第1、7、13...个 */
.service-sing:nth-child(6n + 1) {
  grid-area: 1 / 1 / 2 / 2;
}

/* 每组第2个元素:第2、8、14...个 */
.service-sing:nth-child(6n + 2) {
  grid-area: 1 / 2 / 3 / 3;
}

/* 每组第3个元素:第3、9、15...个 */
.service-sing:nth-child(6n + 3) {
  grid-area: 1 / 3 / 2 / 4;
}

/* 每组第4个元素:第4、10、16...个 */
.service-sing:nth-child(6n + 4) {
  grid-area: 2 / 1 / 4 / 2;
}

/* 每组第5个元素:第5、11、17...个 */
.service-sing:nth-child(6n + 5) {
  grid-area: 3 / 2 / 4 / 3;
}

/* 每组第6个元素:第6、12、18...个 */
.service-sing:nth-child(6n + 6) {
  grid-area: 2 / 3 / 4 / 4;
}

这样修改后,不管你新增多少个.service-sing元素,都会自动按照前6个的布局规律重复排列——第7个和第1个位置一致,第8个和第2个位置一致,以此类推。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 01:15:37