如何使用CSS Grid实现带侧边栏的响应式管理后台界面?

星杰酱_6208

星杰酱_6208

2026-06-19

694人浏览

原创

应使用 grid-template-areas 显式划分侧边栏与主内容区,侧边栏设固定宽度(如 240px)、主区域用 1fr,主内容区内嵌 grid 并用 repeat(auto-fill, minmax(280px, 1fr))) 控制卡片列数,小屏时通过 @media 配合 display: none 隐藏侧边栏,避免宽度失控和卡片变形。

如何使用css grid实现带侧边栏的响应式管理后台界面?

直接用 grid-template-areas 划分整体结构,再用 grid-template-columns 配合 minmax() 控制主内容列数,侧边栏必须脱离 auto-fill 计算——否则小屏下卡片会被拉宽变形、侧边栏宽度失控。

侧边栏不能塞进 repeat(auto-fill, …) 里

常见错误是把整个布局写成 grid-template-columns: repeat(auto-fill, minmax(280px, 1fr))),然后指望侧边栏也参与列数计算。结果是:小屏时侧边栏被强行压到 280px 宽,文字换行、图标错位;主内容区列数却没变,卡片挤成窄条。

  • 侧边栏要显式声明区域:grid-area: sidebar,主内容区用 grid-area: main
  • 容器的 grid-template-areas 写死结构,例如 "sidebar main" "sidebar footer"
  • grid-template-columns 只管侧边栏宽度和主区域比例,比如 240px 1fr 或 minmax(200px, 250px) 1fr,不掺和 auto-fill
  • 主内容区内部再套一层 Grid,才用 repeat(auto-fill, minmax(280px, 1fr))) 管卡片列数

@media 中只改 grid-template-columns 和 grid-area,别漏掉 display

小屏下光写 @media (max-width: 767px) { grid-template-columns: 1fr; } 不够——侧边栏 DOM 还在网格里占位,可能被挤进第一列,撑高容器或遮挡内容。

CSS婚礼策划服务机构宣传网站模板
CSS婚礼策划服务机构宣传网站模板

CSS婚礼策划服务机构宣传网站模板是一款适合提供婚礼策划和婚庆服务机构宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。

下载
  • 必须同步设 .sidebar { grid-column: 1; display: none; }(display: none 是关键,不是 visibility: hidden)
  • 如果侧边栏需要抽屉式滑出,就别用 display: none,改用 transform: translateX(-100%) + position: fixed,并确保 z-index 足够高
  • 检查 DevTools 的 “Computed” 面板,确认生效的 grid-template-columns 真的是 1fr,而不是被更具体的选择器覆盖了

主内容区卡片列数用 auto-fill,但最小宽度得卡死

auto-fill 和 auto-fit 行为不同:auto-fill 会保留空轨道,避免小屏下卡片被拉宽;auto-fit 会合并空轨道,导致列数骤减、布局跳变。对仪表盘卡片来说,auto-fill 更稳。

  • 写法是:grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)));
  • 280px 是底线——再小,中文两行就难读;再大,768px 屏上只剩一列
  • 必须加 gap(比如 gap: 1rem),否则卡片紧贴,视觉混乱
  • 卡片子元素别设 width,否则破坏 Grid 自动分配逻辑;靠 min-width 和 max-width 控制弹性边界即可

IE11 或旧 Safari 下 fr 单位失效,降级要早做准备

IE11 完全不认 1fr,整条 grid-template-columns 规则会被忽略,退化成单列;iOS 13 以下 Safari 对 minmax() 支持也不稳定。

  • 兼容方案优先用 Flexbox 降级:@supports not (display: grid) { .container { display: flex; } }
  • 不要等用户报错才补,一开始就写 @supports (display: grid) 包住 Grid 样式,外面留一层 Flex 基础布局
  • 若必须支持 iOS 13 以下,侧边栏宽度改用 fit-content(240px) 替代 minmax(200px, 250px),主内容用 flex: 1
  • 所有 Grid 容器加 min-height: 100vh,别只写 height: 100vh,否则长页面滚动时侧边栏截断

真正麻烦的不是怎么写 Grid,而是侧边栏显隐时 JS 没同步清理定时器、地图实例或 IntersectionObserver——CSS 隐藏了,内存还在跑。这点容易被忽略,但线上问题往往出在这儿。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关专题

更多
css
css

css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.15

4436

6

css居中
css居中

css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.27

977

5

css如何插入图片
css如何插入图片

cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.28

1838

6

css超出显示...
css超出显示...

在CSS中,当文本内容超出容器的宽度或高度时,可以使用省略号来表示被隐藏的文本内容。本专题为大家提供css超出显示...的相关文章,相关教程,供大家免费体验。

2023.08.01

3466

7

css字体颜色
css字体颜色

CSS中,字体颜色可以通过属性color来设置,用于控制文本的前景色,字体颜色在网页设计中起到很重要的作用,具有以下表现作用:1、提升可读性;2、强调重点信息;3、营造氛围和美感;4、用于呈现品牌标识或与品牌形象相符的风格。

2023.08.10

6925

11

什么是css
什么是css

CSS是层叠样式表(Cascading Style Sheets)的缩写,是一种用于描述网页(或其他基于 XML 的文档)样式与布局的标记语言,CSS的作用和意义如下:1、分离样式和内容;2、页面加载速度优化;3、实现响应式设计;4、确保整个网站的风格和样式保持统一。

2023.08.10

5891

7

css三角形怎么写
css三角形怎么写

CSS可以通过多种方式实现三角形形状,本专题为大家提供css三角形怎么写的相关教程,大家可以免费体验。

2023.08.21

1997

9

css设置文字颜色
css设置文字颜色

CSS(层叠样式表)可以用于设置文字颜色,这样做有以下好处和优势:1、增加网页的可视化效果;2、突出显示某些重要的信息或关键字;3、增强品牌识别度;4、提高网页的可访问性;5、引起不同的情感共鸣。

2023.08.22

2811

5

css禁止点击事件
css禁止点击事件

实现css禁止点击事件的方法有使用CSS的pointer-events属性和使用JavaScript禁用点击事件。本专题为大家提供点击事件相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

2433

5

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
从零制作响应式网站—Grid布局
从零制作响应式网站—Grid布局

共19课时 | 2.7万人学习

Bootstrap Grid 栅格系统
Bootstrap Grid 栅格系统

共0课时 | 0人学习