跳到主要内容

网格布局

网格容器

  • 要使用网格布局必须先设置网格布局
  • 使用 display:grid 或 display:inline-grid
  • 默认情况下,我们开启的是一个单列的网格布局
  • grid-template-columns
    • 用来设置网格布局的列数
    • repeat() 来重复的设置
      • rapeat(4,1fr)
      • rapeat(auto-fill,minmax(50px,auto))
        • 第一个值:
          • auto-fill 自动计算列,尽可能多的生成列
          • auto-fit 自动计算列,尽量让列可以容纳下所有元素
        • 例如:grid-template-columns: 100px 200px minmax(100px, auto);
      • minmax(最小值,最大值)
        • 用来设置行和列的大小
        • 可选值:
          • 像素、auto、min-content、max-content
  • grid-template-rows
    • 用来设置网格布局的行数
  • grid-column-gap 列间距
  • grid-row-gap 行间距
  • grid-gap 同时指定行间距和列间距
    • grid-gap 行间距 列间距
  • justify-items 网格项在轨道中的对齐方式
    • 设置网格中元素水平方向的对齐方式
  • align-items
    • 设置网格中元素垂直方向的对齐方式
  • justify-content、align-content
    • 设置网格项的整体对齐
  • grid-template-columns: [a] 200px [b] 200px [c] 200px [d];
    • 可以为网格线命名
  • grid-template-areas
    • 可以设置命名的区域如何在容器中排布
  • grid-auto-flow
    • 设置网格项的排列方式
    • 可选值:
      • row 默认值,优先填充行,行满了会自动创建新行
      • column 优先填充列,列满了会自动换到下一列,此时不会自动生成行
      • dense 紧凑的,容器中有位置,后边的元素就会自动的补位
  • grid-auto-rows
    • 指定自动行的大小

网格项

  • 网格容器的子元素都会自动变为网格项
  • grid-column-start 网格列的起始位置
  • grid-column-end 网格列的结束位置
  • grid-row-start 网格行的起始位置
  • grid-row-end 网格行的结束位置
  • 可以通过z-index来调整网格项的层级
  • grid-column: grid-column-start/grid-column-end 同时设置列开始和结束
  • grid-row: grid-row-start/grid-row-end 同时设置行开始和结束
  • grid-area: grid-row-start/grid-column-start/grid-row-end/grid-column-end 同时设置行列的开始和结束
  • justify-self、align-self
    • 单独设置某一个网格项在轨道中的对齐方式
  • grid-area: hd;
    • 可以为区域命名