grid 布局
父盒子设置
将父盒子设置成 gird 模型
display: grid;
1.1 grid-template(设置行,列宽度)
给 每列 设置宽度
grid-template-columns: 120px 120px 120px;
给列设置一定数值的宽度
grid-template-columns: 1fr 1fr 1fr;
fr 是 grid 布局中专用的单位,代表占所有空间的比例。
grid-template-columns: 1fr 2fr 1fr;
fr 是 grid 布局中专用的单位,代表占所有空间的比例。
grid-template-columns: repeat(5, 1fr);
repeat 可以更方便的设置列, 第一个参数为列数,第二个参数为 所占空间的比值。
grid-template-columns: 80px auto 80px;
可以给列设置宽度,然后 auto 属性可以将剩余的空间占满。
grid-template-columns: auto 22% 22%;
可以给列设置宽度,然后 auto 属性可以将剩余的空间占满。
1.2 grid-gap(设置间距)
设置行间距 和 列间距
grid-row-gap: 30px;
grid-column-gap: 30px;
grid-row-gap 设置行间距 grid-column-gap 设置列间距。
grid-gap: 10px 5px;
grid-gap 有两个参数,第一个参数代表 行间距,第二个参数代表列间距。
grid-gap: 10px;
grid-gap 只设置一个参数的话,那么行间距和列间距都为 10px
grid-template-areas:
"header header header header"
"main main sidebar"
"footer footer footer footer";
grid-template-areas 给宫格布局中的每个元素设置名称
1.3 justify-items(横向对齐方式)
设置元素 水平 方向排版
justify-items: start;
start 属性实现从左开始排版
justify-items: center;
center 属性实现从中间开始排版
justify-items: end;
end 属性实现从右开始排版
1.4 align-items(纵向对齐方式)
将元素纵向对齐方式
align-items: start;
start 向上对齐
align-items: center;
center 居中对齐
align-items: end;
end 向下对齐
1.5 justify-content(横向对齐方式)
调整网格中网格轨道横轴方向的排布
justify-content: start;
start 左边对齐方式
justify-content: center;
center 居中对齐方式
justify-content: end;
end 右边对齐方式
justify-content: space-between;
space-between 两边对齐方式
justify-content: space-around;
space-around 两边对齐方式,两边产生边距。
justify-content: space-evenly;
space-evenly 两边对齐方式,两边产生边距,边距更大
1.6 align-content(纵向对齐方式)
调整网格中网格轨道纵轴方向的排布
align-content: start;
排列方向为 上方
align-content: center;
排列方向为 居中
align-content: end;
排列方向为 下方
align-content: space-between;
排列方向为 两边对齐
align-content: space-around;
排列方向为 两边对齐,两边产生间距。
align-content: space-evenly;
排列方向为 两边对齐,两边产生间距,间距更大。
2. 子元素设置
2.1 grid-column(设置横向填充)
设置横向的分布
.item4 {
background-color: #f5f5ff;
grid-column-start: 1;
grid-column-end: 3;
}
start 设置开始位置,end设置结束位置,这个值代表网格线。
.item4 {
background-color: #f5f5ff;
grid-column-start: span 3;
}
span 设置的值,就是占用多个单元格。
.item4 {
background-color: #f5f5ff;
grid-column: 1/3;
}
grid-column 第一个是开始的值,第二个是结束的值。
2.2 grid-row(设置纵向填充)
设置纵向的分布
.item4 {
background-color: #f5f5ff;
grid-row-start: 1;
grid-row-end: 3;
}
grid-row-start 设置开始的位置,grid-row-end设置结束的位置。
.item4 {
background-color: #f5f5ff;
grid-row: 1/4;
}
grid-row 第一个参数开始,第二个参数为结束。
.item4 {
background-color: #f5f5ff;
grid-row-start: span 2;
}
从当前位置开始,纵向占用 2 个格子。
.item4 {
background-color: #f5f5ff;
grid-row: 1/span 4;
}
从第一个网格线开始,到第四个格子结束(包含)
2.3 grid-area(设置填充)
将元素连成面
grid-area: 1/2/3/4;
第一个是横向开始的网格线,第二个是纵向开始,第三个是横向结束,第四个是纵向结束。
.container {
grid-template-areas:
"header header header header"
"main main main sidebar"
"footer footer footer footer";
}
.item4 {
grid-area: header;
}
需要配合 grid-template-areas 一起使用,给名称一样的元素填充。
2.4 justify-self(设置横向的对齐方式)
横向排列位置
.item4 {
background-color: #f5f5ff;
grid-area: 1/2/3/4;
justify-self: start;
}
横向设置,居左对齐。
.item4 {
background-color: #f5f5ff;
grid-area: 1/2/3/4;
justify-self: center;
}
横向设置,居中对齐。
.item4 {
background-color: #f5f5ff;
grid-area: 1/2/3/4;
justify-self: end;
}
横向设置,居右对齐。
.item4 {
background-color: #f5f5ff;
grid-area: 1/2/3/4;
justify-self: stretch;
}
填充
2.5 align-self(设置纵向的对齐方式)
纵向排列位置
.item4 {
background-color: #f5f5ff;
grid-area: 1/2/3/4;
align-self: start;
}
靠上对齐
.item4 {
background-color: #f5f5ff;
grid-area: 1/2/3/4;
align-self: center;
}
居中排列
.item4 {
background-color: #f5f5ff;
grid-area: 1/2/3/4;
align-self: end;
}
靠下对齐
.item4 {
background-color: #f5f5ff;
grid-area: 1/2/3/4;
align-self: stretch;
}
填充