赞
踩
Grid布局是一种二维网格布局,有行和列的概念,可用于布局页面主要的区域或小型组件。
1.1 使用display: grid定义网格布局
1.2 显式网格(explicit grid)和隐式网格(implicit grid)
使用grid-template-rows和gird-template-columns定义网格行数和列数,未超出定义的行数和列数的部分称为显式网格;如果放置了超出显示网格数量的grid items,那么网格算法(grid algorithm)将会创建额外的row或者column、tracks来包含这些内容,此时额外的部分称为隐式网格;
示例:网格布局定义2行3列的6个网格,前六个为显式网格,超出的第三行2个网格,称为隐式网格
- .wrapper {
- display: grid;
- grid-template-columns: 1fr 1fr 1fr;
- grid-template-rows: 100px 100px;
- }
1.3 Grid lines 网格线
使用grid布局在显式网格中定义轨道的同时会创建网格线
如图:2行3列的网格拥有3条行列4条列线
- .wrapper {
- display: grid;
- grid-template-columns: [colline1] 1fr [colline2] 1fr [colline3] 1fr [colline4];
- grid-template-rows: [rowline1] 100px [rowline2] 100px [rowline3];
- }
- .wrapper div:first-child {
- grid-column-start: colline1;
- grid-column-end: colline3;
- grid-row-start: rowline1;
- grid-row-end: rowline3;
- }
1.4 Grid tracks 网格轨道
1.4.1 轨道大小
1.4.2 网格轨道:是两条网格线之间的空间。
1.5 Grid row 网格行
1.6 Grid column 网格列
1.7 Grid cell 网格单元格
1.8 Grid Areas 网格区域
- .item1 {
- grid-area: auto;
- grid-area: auto / auto;
- grid-area: auto / auto / auto;
- grid-area: auto / auto / auto / auto;
- }
- .wrapper {
- display: grid;
- grid-template-columns: repeat(3,1fr);
- grid-template-rows: 100px 100px;
- grid-template-areas:
- "a a b"
- "a a b";
- }
- .item1 {
- grid-area: a;
- }
- .item2 {
- grid-area: b;
- }
4.1 Grid and flexbox
Grid网格布局和flexbox的主要区别:flexbox是一维布局(沿横向或者纵向),Grid是二维布局(同时沿着横向和纵向)
举例:当使用flexbox布局,设置了flex-wrap : nowrap;之后,换行后的元素并不会与上一行的元素对齐,当使用了nowrap之后,每个新行都变成了一个新的弹性容器,空间分布只在行内进行。
4.2 选择grid布局还是flexbox布局?
当需要判断选择哪种布局时,可参考以下三点:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。