Grid布局

容器属性

div {
  display: grid;
  grid-template-columns: 100px 100px 100px;
  grid-template-rows: 100px 100px 100px;

  grid-template-columns: 33.33% 33.33% 33.33%;
  grid-template-rows: 33.33% 33.33% 33.33%;

  grid-template-columns: repeat(3, 33.33%);
  grid-template-rows: repeat(3, 33.33%);
  grid-template-columns: repeat(2, 100px 20px 80px);

  grid-template-columns: repeat(auto-fill, 100px); /*自动填充指定宽度的项目*/

  grid-template-columns: 1fr 1fr;
  grid-template-columns: 150px 1fr 2fr;

  grid-template-columns: 1fr 1fr minmax(100px, 1fr); /*最小值 100px  最大值 1fr*/

  grid-template-columns: 100px auto 100px;

  grid-row-gap: 20px; /*行间距*/
  grid-column-gap: 20px; /*列间距*/
  grid-gap: 20px 20px;

  grid-auto-flow: column; /*排列方向,默认 row */
  grid-auto-flow: row dense; /*先行后列,并且尽可能紧密填满,尽量不出现空格 可选值:column dense*/

  justify-items: start | end | center | stretch; /*设置单元格内容的水平位置  stretch - 拉伸(默认值) */
  align-items: start | end | center | stretch;
  place-items: start end; /*justify-items 和 align-items 的简写*/

  justify-content: start | end | center | stretch | space-around | space-between | space-evenly; /*整个内容区域(各个项目集合在一起)在容器里面的水平位置*/
  align-content: start | end | center | stretch | space-around | space-between | space-evenly; 
  /**
  * stretch - 项目大小没有指定时,拉伸占据整个网格容器。
  * space-around - 每个项目两侧的间隔相等。
  * space-between - 项目与项目的间隔相等。
  * space-evenly - 项目与项目的间隔相等,与容器的间隔也相等。
  */
  place-content: space-around space-evenly;

  grid-auto-columns: 50px;
  grid-auto-rows: 50px; /*浏览器自动创建的多余网格的列宽和行高, 它们的写法与grid-template-columns和grid-template-rows完全相同*/
}

容器属性

div {
  grid-column-start: 2; /*指定项目的四个边框,分别定位在哪根网格线*/
  grid-column-end: 3;
  grid-row-start: 2;
  grid-row-end: 4;
  grid-column: 1 / 3;
  grid-row: 1 / 2;

  justify-self: start | end | center | stretch; /*设置单元格内容的水平位置*/
  align-self: start | end | center | stretch;
  place-self: center center;
}