当前位置: 首页 > news >正文

网格布局 CSS Grid

CSS Grid 是 CSS3 提供的二维布局系统,可以同时控制行和列,比 Flexbox(一维布局)更强大,适用于复杂的网页布局设计。

一、Grid 基本概念

1、Grid 容器(Grid Container)

通过 display: grid 或 display: inline-grid 定义一个 Grid 容器:

.container {display: grid;
}
2、Grid 项目(Grid Items)

Grid 容器的直接子元素自动成为 Grid 项目:

<div class="container"><div class="item">Item 1</div><div class="item">Item 2</div><div class="item">Item 3</div>
</div>
3、网格线(Grid Lines)

Grid 布局由行(row)和列(column)组成,网格线是它们的边界线

二、Grid 容器属性

1、定义列和行:grid-template-columns / grid-template-rows
  • grid-template-columns:定义列宽度
  • grid-template-rows:定义行高度

示例:3 列(200px 1fr 200px) + 2 行(100px auto)

.container {display: grid;grid-template-columns: 200px 1fr 200px; /* 1fr = 剩余空间 */grid-template-rows: 100px auto;
}

单位说明:

fr(fraction):剩余空间分配比例auto:自动调整大小minmax(min, max):定义最小和最大尺寸
2、定义网格区域:grid-template-areas

通过命名区域布局:

.container {display: grid;grid-template-areas:"header header header""sidebar main main""footer footer footer";
}
.item-header { grid-area: header; }
.item-sidebar { grid-area: sidebar; }
.item-main { grid-area: main; }
.item-footer { grid-area: footer; }

HTML 结构:

<div class="container"><div class="item-header">Header</div><div class="item-sidebar">Sidebar</div><div class="item-main">Main</div><div class="item-footer">Footer</div>
</div>
3、行列间距:gap(旧版:grid-gap)
row-gap:行间距column-gap:列间距gap:简写(row-gap column-gap)
.container {gap: 10px 20px; /* 行间距 10px,列间距 20px */
}
4、对齐方式
justify-items:所有项目在列方向的对齐(默认 stretch)start | end | center | stretchalign-items:所有项目在行方向的对齐(默认 stretch)start | end | center | stretchjustify-content:整个网格在容器列方向的对齐start | end | center | stretch | space-around | space-between | space-evenlyalign-content:整个网格在容器行方向的对齐

三、Grid 项目属性

1、项目位置:grid-column / grid-row
grid-column-start / grid-column-end:列起始和结束线grid-row-start / grid-row-end:行起始和结束线简写:grid-column: <start> / <end>;grid-row: <start> / <end>;

示例:跨 2 列 + 跨 3 行

.item {grid-column: 1 / 3; /* 从第 1 列线到第 3 列线 */grid-row: 1 / 4;    /* 从第 1 行线到第 4 行线 */
}
2、项目对齐:justify-self / align-self
justify-self:单个项目在列方向的对齐align-self:单个项目在行方向的对齐
.item {justify-self: center;align-self: end;
}
3、 项目顺序:order

调整项目的显示顺序(数值越小越靠前):

.item {order: 1;
}
4、Grid 布局示例
1、经典 12 列网格
.container {display: grid;grid-template-columns: repeat(12, 1fr);gap: 10px;
}
.item {grid-column: span 4; /* 每项占 4 列 */
}
2、圣杯布局(Header + Sidebar + Main + Footer)
.container {display: grid;grid-template-areas:"header header header""sidebar main main""footer footer footer";grid-template-rows: 80px 1fr 60px;grid-template-columns: 200px 1fr;
}
3、自适应卡片布局
container {display: grid;grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));gap: 15px;
}
auto-fill:自动填充列minmax(250px, 1fr):最小 250px,最大占剩余空间
5、浏览器兼容性

CSS Grid 已被所有现代浏览器支持(包括 IE11+,但部分语法不同)。可以使用 @supports 检测支持情况:

@supports (display: grid) {.container {display: grid;}
}
http://www.lryc.cn/news/623406.html

相关文章:

  • 【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day6
  • k8s集群搭建一主多从的jenkins集群
  • 锂电池SOH预测 | Matlab基于KPCA-PLO-Transformer-LSTM的的锂电池健康状态估计(锂电池SOH预测),附锂电池最新文章汇集
  • 网络原理与编程实战:从 TCP/IP 到 HTTP/HTTPS
  • 《详解 C++ Date 类的设计与实现:从运算符重载到功能测试》
  • KingbaseES:一体化架构与多层防护,支撑业务的持续稳定运行与扩展
  • Manus AI 与多语言手写识别技术剖析
  • 整体设计 之“凝聚式中心点”原型 --整除:智能合约和DBMS的深层联合 之1
  • 第三十九天(WebPack构建打包Mode映射DevTool源码泄漏识别还原)
  • 大模型提示词(Prompt)终极指南:从原理到实战,让AI输出质量提升300%
  • 朝花夕拾(四) --------python中的os库全指南
  • 《算法导论》第 27 章 - 多线程算法
  • -nostartfiles参数官方解释,含义
  • 【远程桌面】从RustDesk服务器看UDP对比WebRTC
  • Rust:实现仅通过索引(序数)导出 DLL 函数的功能
  • Node.js导入MongoDB具体操作
  • Kafka 面试题及详细答案100道(23-35)-- 核心机制2
  • 【前端面试题】前端面试知识点(第三十一题到第六十一题)
  • 计算机毕设选题推荐-基于大数据的全面皮肤病症状数据可视化分析系统【Hadoop、spark、python】
  • day42_2025-08-16
  • ArrayList的contains问题
  • 大模拟 Major
  • 扫地机器人(2025蓝桥杯省A组 H题)
  • 【P14 3-6 】OpenCV Python——视频加载、摄像头调用、视频基本信息获取(宽、高、帧率、总帧数),视频保存在指定位置
  • LeetCode 刷题【43. 字符串相乘】
  • 安卓11 12系统修改定制化_____修改运营商版本安装特定应用时的默认规则
  • 美国服务器环境下Windows容器工作负载基于指标的自动扩缩
  • 基于 LoRA的广义知识蒸馏(GKD)训练
  • 【总结型】c语言中的位运算
  • Java -- 泛型-自定义泛型