Grid 布局

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Grid 布局相关的知识,希望对你有一定的参考价值。

参考技术A

Grid 布局与 Flex 布局 有一定的相似性,都可以指定容器内部多个项目的位置。但是,它们也存在重大区别。

Flex 布局是轴线布局,只能指定"项目"针对轴线的位置,可以看作是 一维布局 。Grid 布局则是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可以看作是 二维布局 。Grid 布局远比 Flex 布局强大。

display 布局
grid-template-columns 列
grid-template-rows 行
grid-template-areas 区域
grid-template 行 列 区域简写

grid-column-gap 列间隔
grid-row-gap 行间隔
grid-gap 简写

justify-items 项目内容横向排列方式
align-items 项目内容纵向排列方式
place-items 简写

justify-content 内容横向排列方式
align-content 内容纵向排列方式
place-content 简写

grid-auto-columns 隐式(多出来未定义的格子)列宽
grid-auto-rows 隐式(多出来未定义的格子)行高

grid-auto-flow 排列方式

grid 行 列 区域 隐式格子宽 隐式格子高 排列方式简写

grid-column-start 定位列线开始位置
grid-column-end 定位列线结束位置
grid-column 简写

grid-row-start 定位行线开始位置
grid-row-end 定位行线结束位置
grid-row 简写

grid-area 区域

justify-self 单个项目内容横向对其方式
align-self 单个项目内容纵向对其方式
place-self 简写

可以是以下单位:

grid-template 是 grid-template-rows , grid-template-columns , grid-template-areas 简写属性

grid-column-gap == column-gap

grid-row-gap == row-gap

grid-gap == gap

水平方向

垂直方向

简写方式

水平方向

垂直方向

简写方式

在一个声明中设置所有以下属性的简写: grid-template-rows , grid-template-columns , grid-template-areas , grid-auto-rows , grid-auto-columns , 和 grid-auto-flow 。(注意:您只能在单个网格声明中指定显式或隐式网格属性)。

grid-column-start | grid-column-end 列从第几根线开始,第几根线结束

grid-row-start | grid-row-end 行从第几根线开始,第几根线结束

grid-column | grid-row 简写

表示跨几行或几列

水平方向

垂直方向

简写方式

知识归纳-网格布局-grid

参考技术A

display:grid/inline-grid;
[会把元素转换为块元素/行内元素]

划分行: grid-template-rows: val val ...;
划分列: grid-template-columns: val val ...;
[val值的个数表示行数]

设置行间距: grid-row-gap: val;
设置列间距: grid-column-gap: val;
复合写法: grid-gap: val(row) val(col);

指定子元素排列的方向: grid-auto-flow:column | row
     [默认值为row]

水平对齐方式:
justify-content:start | end | center | stretch | space-around | space-between | space-evenly;
垂直对齐方式:
align-content: start | end | center | stretch | space-around | space-between | space-evenly;
复合写法: place-content: 垂直对齐方式 水平对齐方式
     [ space-evenly :网格与网格间、网格与边框间的间距相等,对标 space-around ]

水平对齐方式: justify-items:start | end | strech;
垂直对齐方式: align-items: start | end | center | stretch;
     [若项目没有设置宽高,则默认适用 justify-items:stretch ]
复合写法: place-items:垂直对齐方式 水平对齐方式;

     [假定为3x3的网格]
垂直网格线: grid-template-columns: [c1] 100px [c2] 100px [c3] auto [c4];
水平网格线: grid-template-rows: [r1] 100px [r2] 100px [r3] auto [r4];
     [默认名称为1,2,3,4(-4,-3,-2,-1) 且不会被覆盖]

合并列:
grid-column-start: 合并起点的纵向网格线名称;
grid-column-end: 合并终点的纵向网格线名称;
合并行:
grid-row-start: 合并起点的纵向网格线名称;
grid-row-end: 合并终点的纵向网格线名称;
复合写法:
合并列: grid-column:start/end
合并行: grid-row:start/end

     [假定为3x3的网格]
指定网格区域:

     [单引号、双引号皆可]
     [区域名称可单行显示也可折行显示]
     [无用区域可用.来表示]

分配项目: grid-area:区域名称;
     [若指定区域为复数且相邻为长方形或正方形时,会自动合并]
     [指定时区域名称不用引号]

以上是关于Grid 布局的主要内容,如果未能解决你的问题,请参考以下文章

grid布局

前端,能说说你对grid布局的理解吗?

grid布局

css grid 格子布局

关于基本布局之——Grid布局

grid布局