display: grid 的元素称为 Grid容器(父容器),容器内直接子元素自动成为 Grid项目(子项)
| 属性名 | 作用说明 | 常用取值 |
|---|---|---|
| display | 开启网格布局 | grid / inline-grid |
| grid-template-columns | 定义列轨道的宽度和数量 | 100px / 1fr / auto / repeat(3, 1fr) / minmax(100px, 1fr) |
| grid-template-rows | 定义行轨道的高度和数量 | 100px / 1fr / auto / repeat(2, 80px) / minmax(50px, auto) |
| grid-template-areas | 通过命名网格区域布局 | "header header" "sidebar main" "footer footer" |
| grid-template | 复合简写:rows + columns + areas | repeat(2, 80px) / repeat(3, 1fr) |
| grid-column-gap/column-gap | 列轨道之间的间距 | 10px / 1rem / 2vw |
| grid-row-gap/row-gap | 行轨道之间的间距 | 10px / 1rem / 2vw |
| grid-gap/gap | 复合简写:row-gap + column-gap | 10px 20px / 1rem |
| justify-items | 单元格内项目沿行轴(水平)对齐 | stretch / start / end / center |
| align-items | 单元格内项目沿列轴(垂直)对齐 | stretch / start / end / center |
| place-items | 复合简写:align-items + justify-items | center / start end |
| justify-content | 整个网格容器在行轴的对齐方式(网格总尺寸<容器尺寸时生效) | start / end / center / space-between / space-around / space-evenly |
| align-content | 整个网格容器在列轴的对齐方式(网格总尺寸<容器尺寸时生效) | start / end / center / space-between / space-around / space-evenly |
| place-content | 复合简写:align-content + justify-content | center / space-around start |
| grid-auto-columns | 隐式列轨道的默认宽度 | 100px / 1fr / minmax(80px, 1fr) |
| grid-auto-rows | 隐式行轨道的默认高度 | 80px / 1fr / minmax(50px, auto) |
| grid-auto-flow | 隐式网格的排列方式 | row / column / row dense / column dense |
| grid | 终极简写:包含所有网格容器属性 | auto-flow / repeat(2, 1fr) / 100px auto |
display: grid:块级网格容器,独占一行display: inline-grid:行内网格容器,与同行元素并排100px 200px1fr 2fr(2:1分配)repeat(3, 1fr) = 1fr 1fr 1frminmax(100px, 1fr)(最小100px,最大1fr)[col1-start] 1fr [col1-end col2-start] 2fr [col2-end]. 表示"header header header" "sidebar main main" "footer footer ."grid-area 使用gap: 15px 20px语法:place-items: align-items justify-items; 单值时两者共用,如 place-items: center
当网格总尺寸小于容器尺寸时,控制整个网格在容器内的对齐方式,取值同 Flex 的同名属性
| 属性名 | 作用说明 | 取值规则 |
|---|---|---|
| grid-column-start | 项目起始列网格线 | 数字 / 网格线名称 |
| grid-column-end | 项目结束列网格线 | 数字 / 网格线名称 / span 数字(跨几列) |
| grid-column | 复合简写:start / end | 1 / 3 / 1 / span 2 / col1-start / col2-end |
| grid-row-start | 项目起始行网格线 | 数字 / 网格线名称 |
| grid-row-end | 项目结束行网格线 | 数字 / 网格线名称 / span 数字(跨几行) |
| grid-row | 复合简写:start / end | 2 / 4 / 1 / span 3 / row1-start / row3-end |
| grid-area | 复合简写:row-start / column-start / row-end / column-end 或 网格区域名称 | header / 1 / 2 / 3 / 4 |
| justify-self | 单独设置项目在行轴对齐,覆盖justify-items | stretch / start / end / center |
| align-self | 单独设置项目在列轴对齐,覆盖align-items | stretch / start / end / center |
| place-self | 复合简写:align-self + justify-self | center / end start |
grid-column: 1 / 3(从第1列线到第3列线,跨2列)grid-row: 2 / span 2(从第2行线开始,跨2行)grid-column: col1-start / col2-endgrid-area: header(对应容器grid-template-areas的header)grid-area: 1 / 2 / 3 / 4(row-start / column-start / row-end / column-end)单个项目自定义单元格内对齐方式,优先级高于容器的justify-items/align-items
语法:place-self: align-self justify-self; 单值时两者共用,如 place-self: center
display:grid; place-items:center;grid-template-columns: repeat(3, 1fr);grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));grid-column: 1 / span 2; grid-row: 1 / span 3;grid-template-areas: "a b" "c d"; + 子项 grid-area: a;grid-template-rows: 60px 1fr 60px; grid-template-columns: 200px 1fr;