如何利用CSS Grid实现嵌套三列布局

来源:编程网作者:天马头衔:网络博主
导读:本期聚焦于小伙伴创作的《如何利用CSS Grid实现嵌套三列布局》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何利用CSS Grid实现嵌套三列布局》有用,将其分享出去将是对创作者最好的鼓励。

在网页前端开发中,三列布局是非常经典的内容展示结构,当需要在某一列中再拆分出更小的列区域时,就需要用到嵌套三列布局。CSS Grid网格布局提供了原生的网格定义能力,不需要依赖浮动或者定位就能实现精准的网格划分,非常适合用来实现嵌套类的复杂布局结构。

如何利用CSS Grid实现嵌套三列布局

基础页面结构搭建

首先我们需要先构建基础的HTML结构,外层容器定义为主网格,内层需要嵌套三列的区域单独定义子网格,整体结构清晰且语义明确。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS Grid嵌套三列布局</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <div class="main-grid">
        <header class="header">页面头部</header>
        <div class="content-area">
            <div class="left-sidebar">左侧边栏</div>
            <div class="main-content">
                <!-- 这里是需要嵌套三列的区域 -->
                <div class="nested-grid">
                    <div class="nested-col-1">嵌套列1</div>
                    <div class="nested-col-2">嵌套列2</div>
                    <div class="nested-col-3">嵌套列3</div>
                </div>
            </div>
            <div class="right-sidebar">右侧边栏</div>
        </div>
        <footer class="footer">页面底部</footer>
    </div>
</body>
</html>

外层主网格样式定义

外层main-grid容器需要定义整体的页面布局结构,这里我们将页面分为头部、内容区、底部三个部分,内容区再拆分为左中右三列,整体使用grid-template-areas来划分区域更直观。

.main-grid {
    display: grid;
    /* 定义三行:头部高度、内容区自适应、底部高度 */
    grid-template-rows: 80px 1fr 60px;
    /* 定义三列:左侧边栏、主内容区、右侧边栏的宽度 */
    grid-template-columns: 200px 1fr 200px;
    /* 给区域命名,方便后续分配 */
    grid-template-areas:
        "header header header"
        "left-sidebar main-content right-sidebar"
        "footer footer footer";
    min-height: 100vh;
    gap: 10px;
    padding: 10px;
    background-color: #f5f5f5;
}

/* 区域对应样式 */
.header {
    grid-area: header;
    background-color: #4a90e2;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
}

.left-sidebar {
    grid-area: left-sidebar;
    background-color: #e8f4fd;
    padding: 15px;
}

.main-content {
    grid-area: main-content;
    background-color: white;
    padding: 15px;
}

.right-sidebar {
    grid-area: right-sidebar;
    background-color: #e8f4fd;
    padding: 15px;
}

.footer {
    grid-area: footer;
    background-color: #333;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
}

嵌套三列布局实现

主内容区的nested-grid容器就是我们需要实现嵌套三列的区域,我们只需要在这个容器上单独开启Grid布局,定义三列的宽度比例即可,外层网格不会影响内层的网格定义。

.nested-grid {
    display: grid;
    /* 三列宽度比例 1:2:1,也可以设置固定值 */
    grid-template-columns: 1fr 2fr 1fr;
    gap: 15px;
    height: 100%;
}

.nested-col-1 {
    background-color: #fff3e0;
    padding: 15px;
    border-radius: 4px;
}

.nested-col-2 {
    background-color: #e8f5e9;
    padding: 15px;
    border-radius: 4px;
}

.nested-col-3 {
    background-color: #fce4ec;
    padding: 15px;
    border-radius: 4px;
}

响应式适配优化

在移动端等小屏幕设备上,嵌套三列布局可能需要调整为单列展示,我们可以通过媒体查询修改nested-grid的列定义,同时外层主网格也可以根据屏幕尺寸调整列宽。

/* 屏幕宽度小于768px时的适配 */
@media (max-width: 768px) {
    .main-grid {
        /* 内容区改为单列,侧边栏移到内容下方 */
        grid-template-columns: 1fr;
        grid-template-areas:
            "header"
            "main-content"
            "left-sidebar"
            "right-sidebar"
            "footer";
    }

    .nested-grid {
        /* 嵌套三列改为单列展示 */
        grid-template-columns: 1fr;
    }
}

核心知识点总结

  • Grid布局支持嵌套使用,内层的网格容器不会影响外层的网格定义,各自独立控制自己的区域划分
  • 使用grid-template-areas可以直观划分页面区域,可读性比直接定义行列序号更高
  • fr单位可以实现列的弹性分配,不需要计算具体的像素值,适配性更好
  • 结合媒体查询可以轻松实现不同屏幕尺寸下的布局切换,不需要修改HTML结构

需要注意的是,Grid布局的兼容性在IE浏览器上支持较差,如果需要兼容旧版IE,建议配合使用降级方案,或者选择其他布局方式实现。

CSS_Grid嵌套三列布局HTML布局网格布局修改时间:2026-06-06 05:06:04

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。