本文手把手教你使用 CSS Grid 实现如图所示的非对称六宫格布局,通过合理定义网格轨道与精准控制每个区块的 grid-row/grid-column 跨度,替代低效的“均分列”思路,达成专业级响应式结构。
本文手把手教你使用 css grid 实现如图所示的非对称六宫格布局,通过合理定义网格轨道与精准控制每个区块的 `grid-row`/`grid-column` 跨度,替代低效的“均分列”思路,达成专业级响应式结构。
在构建现代网页布局时,CSS Grid 是处理复杂、非对称结构的首选方案——尤其适用于如本例中需要灵活跨行跨列的六宫格设计(参考原始需求中的示意图)。初学者常误用等宽列(如 33% 33% 33%)强行拼凑,结果导致布局僵硬、难以适配内容高度差异。正确做法是:先规划网格骨架,再为每个子项显式指定占据范围。
我们按目标视觉结构反推网格轨道:
以下是完整、可直接运行的代码示例(Vue 单文件组件风格,但 CSS 部分完全通用):
<template> <div class="container"> <div class="row"> <div class="col text-center"> <h3>Best Of The Best</h3> <p>Sebuah lembaga pendidikan yang didedikasikan untuk memaksimalkan potensi anak bangsa.</p> </div> </div> <div class="hero-box-container"> <div class="hero-box hero-box-1">1</div> <div class="hero-box hero-box-2">2</div> <div class="hero-box hero-box-3">3</div> <div class="hero-box hero-box-4">4</div> <div class="hero-box hero-box-5">5</div> <div class="hero-box hero-box-6">6</div> </div> </div></template><style scoped>.hero-box-container { display: grid; grid-template-columns: 40% 23% 4% 23%; grid-template-rows: 300px 50px 200px; gap: 8px; /* 推荐添加间隙提升可读性 */}.hero-box { border-radius: 8px; color: white; font-weight: bold; display: flex; align-items: center; justify-content: center;}.hero-box-1 { background-color: #70e9c9; grid-row: 1 / 3; } /* 跨第1–2行(共2行) */.hero-box-2 { background-color: #63dbbb; grid-column: 2 / 4; } /* 跨第2–3列(即中间两列) */.hero-box-3 { background-color: #51c9a9; } /* 默认占1×1单元格 */.hero-box-4 { background-color: #3dafa0; grid-row: 3; } /* 占第3行整行 */.hero-box-5 { background-color: #309d96; grid-row: 2 / 4; } /* 跨第2–3行(覆盖窄带+底部) */.hero-box-6 { background-color: #1e897a; grid-row: 2 / 5; grid-column: 3 / 5; } /* 跨2–3行 + 第3–4列 */</style>
掌握这种“轨道定义 + 显式定位”的思维模式,你将能自由构建新闻门户首页、数据看板、创意画廊等任意复杂网格结构。Grid 不是魔法,而是对空间的精准编程——从今天开始,告别 float 和 inline-block 的苦役时代。
立即学习“前端免费学习笔记(深入)”;