讲师中心 微信公众号
AI工具推荐 视频效率加速

css grid如何快速实现圣杯布局_通过网格区域分配左右中间栏

大婷大大_2279

大婷大大_2279

发布时间:2026-02-07 11:53:02

|

919人浏览过

|

来源于php中文网

原创

圣杯布局的网格区域本质是主内容优先渲染与侧边栏固定位置的结合,通过grid-template-areas声明语义区域,按字符串顺序解析行,实现DOM顺序与视觉顺序分离,确保SEO和无障碍可访问性。

css grid如何快速实现圣杯布局_通过网格区域分配左右中间栏

什么是圣杯布局的网格区域本质 圣杯布局的核心不是浮动或 flex 模拟,而是「主内容优先渲染 + 侧边栏固定位置」。CSS Grid 用 grid-template-areas 直接声明语义区域,浏览器按字符串顺序解析行,天然支持 DOM 顺序与视觉顺序分离。

关键点在于:左侧栏、主内容、右侧栏必须在 HTML 中按「左-中-右」物理顺序书写,但通过 grid-template-areas 重新映射到网格行内位置,才能保证 SEO 和无障碍可访问性。

三栏区域定义与grid-template-areas写法 用三行字符串定义区域布局,每行对应一个网格轨道(row),每个单词对应一个列轨道(column)上的单元格:
display: grid;
grid-template-areas:
  "header header header"
  "left   main   right"
  "footer footer footer";
grid-template-columns: 200px 1fr 200px;
grid-template-rows: auto 1fr auto;

注意:grid-template-areas 中重复的单词(如 header)会自动横跨多列,无需额外设置 colspan;单词之间用空格分隔,换行即换行,引号不能省略。

  • 如果左右栏要自适应(比如左侧菜单宽度随文字撑开),把 200px 换成 max-content 或 fit-content(200px)
  • 主内容用 1fr 保证占满剩余空间,不是 auto —— 否则它不会撑高容器,导致 footer 上浮
  • 区域名区分大小写,Main 和 main 是不同区域

如何让中间栏在 DOM 中写在最前面(真正“圣杯”语义) Grid 允许用 grid-area 把任意元素扔进指定区域,不受 HTML 顺序限制:
<main class="main">...</main>
<aside class="left">...</aside>
<aside class="right">...</aside>

然后为它们分别指定区域:

RankParse SEO API
RankParse SEO API

通过 RankParse API 获取任意域名或 URL 的 SEO数据,包括反向链接、域名权重、技术栈、页面元数据以及竞争对手重叠信息。

下载
.main  { grid-area: main; }
.left  { grid-area: left; }
.right { grid-area: right; }

这样 HTML 里 <main></main> 在最前,对爬虫和阅读器更友好,而视觉上仍是左-中-右排列。

立即学习“前端免费学习笔记(深入)”;

  • 必须给每个元素显式设置 grid-area,否则它们会按源顺序依次填入网格,破坏布局
  • 区域名可以是任意合法标识符,但需和 grid-template-areas 字符串中完全一致
  • 不推荐用数字命名区域(如 "1 2 3"),容易和 grid-column 数值混淆

响应式下如何收缩侧边栏并重排区域 用媒体查询修改 grid-template-areas 字符串即可切换整体结构:
@media (max-width: 768px) {
  .container {
    grid-template-areas:
      "header"
      "main"
      "left"
      "right"
      "footer";
    grid-template-columns: 1fr;
  }
}

此时左右栏变成上下堆叠在主内容之后,不需要 JS 或额外 wrapper。

  • 所有区域名仍保持不变,只是排列方式变化,CSS 类名无需改动
  • 若想隐藏某栏(如移动端不要右侧栏),直接删掉对应单词,例如 "header main left footer"
  • 避免在小屏下还保留 200px 列宽,应同步改 grid-template-columns: 1fr
实际最难的不是写对区域名,而是忘记给容器设 display: grid —— 那整个 grid-template-areas 完全不生效,页面退化成普通流式布局,还查不出错。

热门AI工具

更多
Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

相关专题

更多
mysql标识符无效错误怎么解决
mysql标识符无效错误怎么解决

mysql标识符无效错误的解决办法:1、检查标识符是否被其他表或数据库使用;2、检查标识符是否包含特殊字符;3、使用引号包裹标识符;4、使用反引号包裹标识符;5、检查MySQL的配置文件等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

15520

2023.12.04

Python标识符有哪些
Python标识符有哪些

Python标识符有变量标识符、函数标识符、类标识符、模块标识符、下划线开头的标识符、双下划线开头、双下划线结尾的标识符、整型标识符、浮点型标识符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1143

2024.02.23

java标识符合集
java标识符合集

本专题整合了java标识符相关内容,想了解更多详细内容,请阅读下面的文章。

8610

2025.06.11

c++标识符介绍
c++标识符介绍

本专题整合了c++标识符相关内容,阅读专题下面的文章了解更多详细内容。

3402

2025.08.07

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

1798

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

2824

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

6164

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

5909

2023.11.24

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

60

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.5万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 6.1万人学习

CSS教程
CSS教程

共754课时 | 98.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn