Grid 布局类似于flex布局,当你给一个容器加上这条display:grid,就意味着它是一个容器cointainer,也就意味着它的后代的子元素也就成为该容器的member。
容器里面的水平区域称为"行"row,垂直区域称为"列"column。
注意:设为网格布局以后,容器子元素(项目)的float、display: inline-block、display: table-cell、vertical-align和column-*等设置都将失效。
一、grid-template-columns & grid-template-rows
grid-template-columns :定义每一列的列宽
grid-template-rows:定义每一行的行高
代码
效果
ps:
单位:除了熟悉的
px %,还新增了一个fr,它就是一个比例的单位比如
grid-template-columns: 1fr 2fr;,这个语句就表示者是前者的两倍。
二、grid-row-gap grid-column-gap grid-gap
grid-row-gap:设置行与行的间隔(行间距)
grid-column-gap:设置列与列的间隔(列间距)
grid-gap :是grid-row-gap和 grid-column-gap 的合写
三、grid-template-areas
grid-template-areas:用于定义区域。
代码
效果
四、grid-auto-flow
grid-auto-flow:放置顺序,默认值为row,即先行后列,效果如上图
-
grid-auto-flow :column
设置先列后行
效果
-
grid-auto-flow :row dense:表示"先行后列",并且尽可能紧密填满,尽量不出现空格 -
grid-auto-flow:column dense:表示"先列后行",并且尽量填满空格
五、justify-items align-items place-items
justify-items:设置单元格内容的水平位置(左中右)
align-items:设置单元格内容的垂直位置(上中下)
他俩的取值一样,有:
-
start:对齐单元格的起始边缘。 -
end:对齐单元格的结束边缘。 -
center:单元格内部居中。 -
stretch:拉伸,占满单元格的整个宽度(默认值)。
place-items:是justify-items和align-items的合写
image.png
image.png
六、justify-content align-content place-content
justify-content:整个内容区域在容器里面的水平位置(左中右)
align-content:整个内容区域的垂直位置(上中下)
-
start:对齐容器的起始边框。 -
end:对齐容器的结束边框。 -
center: 容器内部居中。 -
stretch:项目大小没有指定时,拉伸占据整个网格容器。
-space-around: 每个项目两侧的间隔相等。所以,项目之间的间隔比项目与容器边框的间隔大一倍。 -
space-between: 项目与项目的间隔相等,项目与容器边框之间没有间隔。 -
space-evenly: 项目与项目的间隔相等,项目与容器边框之间也是同样长度的间隔。
image.png
image.png
place-content :是justify-content和 align-content的合写









网友评论