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

如何使用CSS Grid实现指定的目标布局?

Grid布局问题解决

我想要实现如图所示的布局,尝试了以下Grid代码但未能成功:

HTML代码

<ul class="container">
     <li class="first"> </li>
     <li class="second"> </li>
     <li class="third"> </li>
     <li class="fourth"> </li>
</ul>

CSS代码

.container{
   display: grid;
   grid-template-columns: 1fr 1fr 1fr 1fr;
   gap: 20px;
}

.first{
   grid-column: span 2;
}

根据常见的类似布局需求,给出两种解决方案:

方案一:首元素占2行2列,右侧两元素并排,尾元素占满整行

如果目标是首元素高度覆盖两行,右侧两个元素横向并排,尾元素占满整行宽度,调整CSS如下:

.container{
   display: grid;
   grid-template-columns: 1fr 1fr 1fr 1fr;
   gap: 20px;
}

.first{
   grid-column: span 2;
   grid-row: span 2; /* 让首元素高度占2行 */
}

.fourth{
   grid-column: span 4; /* 尾元素占满4列宽度 */
}

/* 可选:给元素加样式方便查看布局 */
.container li{
   background: #e0e0e0;
   min-height: 100px;
}

方案二:首元素占2列,剩余元素自动填充空白

如果希望首元素占2列后,剩余元素自动填充空白区域,可启用Grid的密集排列特性:

.container{
   display: grid;
   grid-template-columns: 1fr 1fr 1fr 1fr;
   gap: 20px;
   grid-auto-flow: dense; /* 自动填充空白格子 */
}

.first{
   grid-column: span 2;
}

.fourth{
   grid-column: span 2; /* 让尾元素也占2列 */
}

.container li{
   background: #e0e0e0;
   min-height: 100px;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 11:20:25