CSS Grid 布局:网格容器、网格项及响应式设计
该思维导图总结了CSS Grid布局的核心概念和使用方法。它涵盖了网格容器和网格项的定义、属性及使用方法,包括`grid-template-columns`、`grid-template-rows`、`grid-area`等关键属性,以及`justify-items`、`align-items`等对齐属性。 此外,还介绍了简写属性的使用,自动填充网格项的方法,以及响应式设计中的媒体查询、弹性单位`fr`和`minmax`函数等技巧。最后,强调了编写简洁、语义化代码以及考虑浏览器兼容性和回退方案的重要性。
源码
# CSS Grid 布局
## 网格容器 Grid Container
- 定义
- 使用 `display: grid` 或 `display: inline-grid` 创建网格容器。
- 功能
- 定义网格项放置的区域。
- 控制网格的整体结构和行为。
- 属性
- grid_template_columns
- 定义列的宽度
- 可以使用具体的长度(如px, em)
- 可以使用比例(如fr)
- grid_template_rows
- 定义行的高度
- 同上。
- grid_template_areas
- 通过命名定义网格区域
- 通常与 `grid_area` 属性配合使用。
- grid_template
- 简写属性
- 同时设置 `grid_template_columns`, `grid_template_rows` 和 `grid_template_areas`。
- grid_auto_columns 和 grid_auto_rows
- 定义隐式网格轨道的尺寸
- 适用于超出显式定义的网格项。
- grid_auto_flow
- 控制网格项自动填充
- 值可以是 `row`, `column` 或 `dense`。
## 网格项 Grid Items
- 定义
- 直接位于网格容器内的子元素。
- 定位
- grid_column_start, grid_column_end, grid_row_start, grid_row_end
- 指定网格项开始和结束的网格线。
- grid_column 和 grid_row
- 简写属性
- 分别设置列和行的位置。
- grid_area
- 作为简写属性
- 可以引用 `grid_template_areas` 中定义的区域名称。
- 跨越多轨
- span
- 关键字
- 指定网格项跨越的轨道数量。
## 对齐与定位
- 对齐网格项
- justify_items 和 align_items
- 控制所有网格项的水平和垂直对齐方式。
- place_items
- 简写属性
- 同时设置 `justify_items` 和 `align_items`。
- justify_self 和 align_self
- 为单个网格项设置对齐方式。
- place_self
- 简写属性
- 同时设置 `justify_self` 和 `align_self`。
- 对齐网格容器
- justify_content 和 align_content
- 控制整个网格内容的对齐方式。
- place_content
- 简写属性
- 同时设置 `justify_content` 和 `align_content`。
## 设置网格
- 定义网格模板
- grid_template_columns 和 grid_template_rows
- 分别定义列和行的宽度和高度。
- grid_template_areas
- 通过命名来定义网格区域。
- 简写属性
- grid_template
- 同时设置 `grid_template_columns`, `grid_template_rows` 和 `grid_template_areas`。
- 设置自动填充
- grid_auto_columns 和 grid_auto_rows
- 定义隐式网格轨道的尺寸。
- grid_auto_flow
- 控制如何自动放置网格项
- 可以是 `row`, `column` 或 `dense`。
## 响应式设计
- 媒体查询
- 根据屏幕尺寸调整网格布局。
- 弹性单位
- 使用 `fr` 单位
- 创建弹性网格轨道。
- 最小最大函数
- minmax
- 确保轨道尺寸在指定范围内。
- repeat 函数
- 简化重复轨道模式的定义。
- auto_fit 和 auto_fill
- 根据可用空间自动调整轨道数量。
## 最佳实践
- 简洁的代码
- 使用简写属性和函数减少冗余。
- 语义化
- 给网格区域赋予有意义的名字
- 提高代码可读性。
- 浏览器兼容性
- 检查不同浏览器对 CSS Grid 的支持情况。
- 回退方案
- 为不支持 Grid 的老版浏览器提供替代布局方案。
图片
