小工具知识网

当前位置: 首页 > 行业知识 > CSS3 grid网格布局

行业知识

CSS3 grid网格布局

2026-11-08 20:45:43 来源:互联网转载

文章目录

  • CSS3 grid网格布局
    • 概述
    • grid属性说明
    • 使用
      • grid-template-rows & grid-template-columns 定义行高和列宽
      • grid-auto-flow 定义项目的排列顺序
      • grid-auto-rows & grid-auto-columns 定义多余网格的行高和列宽
      • row-gap & column-gap 设置行间距和列间距
      • gap 简写形式
      • grid-template-areas 定义区域
      • justify-items & align-items 设置项目的水平位置和垂直位置
      • place-items 简写形式
      • align-content & justify-content 设置整个内容的位置
      • place-content 简写形式
      • grid-row-start & grid-row-end & grid-column-start & grid-column-end 指定项目位置
      • grid-column & grid-row 简写形式
      • grid-area 简写形式
      • align-self & justify-self 设置项目的垂直位置和水平位置
      • place-self 简写形式
      • 案例
        • 圣���布局

          CSS3 grid网格布局

          概述

          Grid 布局即网格布局,是一种新的 CSS 布局模型,比较擅长将一个页面划分为几个主要区域,以及定义这些区域的大小、位置、层次等关系。号称是最强大的的 CSS 布局方案,是目前唯一一种 CSS 二维布局。

          grid元素是块元素。

          grid属性说明

          容器属性

          属性说明
          grid-template-rows定义行高
          grid-template-columns定义列宽
          grid-auto-flow定义项目的排列顺序
          grid-auto-rows定义多余网格的行高
          grid-auto-columns定义多余网格的列宽
          row-gap行间距
          column-gap列间距
          gaprow-gap和column-gap的简写
          grid-template-areas定义区域
          justify-items设置项目的水平位置
          align-items设置项目的垂直位置
          place-itemsalign-items和justify-items的简写
          align-content设置整个内容区域的垂直位置
          justify-content设置整个内容区域的水平位置
          place-contentalign-content和justify-content的简写
          grid-templategrid-template-columns、grid-template-rows 和 grid-template-areas的简写

          项目属性

          属性说明
          grid-row-start & grid-row-end & grid-column-start & grid-column-end指定项目位置
          grid-columngrid-column-start 和 grid-column-end 的合并简写形式
          grid-rowgrid-row-start 和 grid-row-end 的合并简写形式
          grid-areagrid-row-start、grid-column-start、grid-row-end、grid-column-end 的合并简写形式
          align-self项目的垂直位置
          justify-self项目的水平位置
          place-selfalign-self 和 justify-self的简写形式

          使用

          grid-template-rows & grid-template-columns 定义行高和列宽

          grid-template-rows和 grid-template-columns属性取值

          属性值说明
          px固定值
          %百分比
          fr片段,分配剩余空间
          auto先于fr计算,获取必要的最小空间
          repeat()简化重复值

          固定值使用

                            Document          .container {        display: grid;        grid-template-rows: 50px 50px 50px;        grid-template-columns: 50px 50px 50px;      }      .item {        display: flex;        align-items: center;        justify-content: center;        color: white;        font-size: 12px;      }      .item-1 {        background-color: lightseagreen;      }      .item-2 {        background-color: lightsteelblue;      }      .item-3 {        background-color: lightgreen;      }      .item-4 {        background-color: #ffd200;      }      .item-5 {        background-color: lightskyblue;      }      .item-6 {        background-color: pink;      }      .item-7 {        background-color: gray;      }      .item-8 {        background-color: orange;      }      .item-9 {        background-color: yellowgreen;      }                  1      2      3      4      5      6      7      8      9      

          百分比使用

          .container {    display: grid;    width: 150px;    height: 150px;    grid-template-rows: 33.33% 33.33% 33.33%;    grid-template-columns: 33.33% 33.33% 33.33%;}

          fr使用

          .container {    display: grid;    width: 150px;    height: 150px;    grid-template-rows: 1fr 1fr 1fr;    grid-template-columns: 1fr 1fr 1fr;}
          .container {    display: grid;    width: 150px;    height: 150px;    grid-template-rows: 20px 1fr 20px;    grid-template-columns: 20px 1fr 20px;}

          auto使用

          .container {    display: grid;    width: 150px;    height: 150px;    grid-template-rows: 20px auto 20px;    grid-template-columns: 20px auto 20px;}
          .container {    display: grid;    width: 150px;    height: 150px;    grid-template-rows: auto 1fr 50px;    grid-template-columns: auto auto auto;}

          repeat()使用

          .container {    display: grid;    width: 150px;    height: 150px;    grid-template-rows: repeat(3, 50px);    grid-template-columns: repeat(3, 50px);}

          grid-auto-flow 定义项目的排列顺序

          grid-auto-flow属性取值

          属性说明
          row先填入第一行
          column先填入第一列
          row dense按行填充空白
          column dense按列填充空白

          使用

          .container {display: grid;width: 150px;height: 150px;grid-template-rows: repeat(3, 50px);grid-template-columns: repeat(3, 50px);grid-auto-flow: row;}
          .container {    display: grid;    width: 150px;    height: 150px;    grid-template-rows: repeat(3, 50px);    grid-template-columns: repeat(3, 50px);    grid-auto-flow: column;}
          .container {    display: grid;    width: 150px;    height: 150px;    grid-template-rows: repeat(3, 50px);    grid-template-columns: repeat(3, 50px);    grid-auto-flow: row dense;}.item-1 {    grid-column-start: 1;    grid-column-end: 3;}
          .container {    display: grid;    width: 150px;    height: 150px;    grid-template-rows: repeat(3, 50px);    grid-template-columns: repeat(3, 50px);    grid-auto-flow: column dense;}.item-1 {    grid-column-start: 1;    grid-column-end: 3;}

          grid-auto-rows & grid-auto-columns 定义多余网格的行高和列宽

          使用

          .container {    display: grid;    width: 150px;    height: 150px;    grid-template-rows: repeat(3, 50px);    grid-template-columns: repeat(3, 50px);    grid-auto-rows: 100px;    grid-auto-columns: 100px;}

          row-gap & column-gap 设置行间距和列间距

          .container {    display: grid;    width: 150px;    height: 150px;    grid-template-rows: repeat(3, 50px);    grid-template-columns: repeat(3, 50px);    row-gap: 10px;    column-gap: 40px;}

          gap 简写形式

          .container {    display: grid;    width: 150px;    height: 150px;    grid-template-rows: repeat(3, 50px);    grid-template-columns: repeat(3, 50px);    gap: 10px 40px;}

          grid-template-areas 定义区域

          .container {    display: grid;    grid-template-rows: repeat(3, 50px);    grid-template-columns: repeat(3, 50px);    grid-template-areas:        "a b c"        "e f g"        "h i j";}.item-1 {    grid-area: c;}.item-3 {    grid-area: a;}

          justify-items & align-items 设置项目的水平位置和垂直位置

          justify-items & align-items属性取值

          属性值说明
          stretch默认值,拉伸
          start开始位置
          center居中位置
          end结束位置

          使用

          .container {    display: grid;    grid-template-rows: repeat(3, 50px);    grid-template-columns: repeat(3, 50px);    justify-items: center;    align-items: center;}

          place-items 简写形式

          .container {    display: grid;    grid-template-rows: repeat(3, 50px);    grid-template-columns: repeat(3, 50px);    place-items: center center;}

          align-content & justify-content 设置整个内容的位置

          align-content & justify-content属性取值

          属性说明
          stretch默认值,没有指定大小时,拉伸
          start开始位置
          center居中位置
          end结束位置
          space-around每个项目的间隔相等
          space-between每个项目的间隔相等,项目与边框之间没有间隔
          space-evenly每个项目的间隔相等,项目与边框之间也是一样的间隔

          使用

          .container {    display: grid;    height: 500px;    border: 1px dashed green;    grid-template-rows: repeat(3, 50px);    grid-template-columns: repeat(3, 50px);    align-content: center;    justify-content: center;}

          place-content 简写形式

          .container {    display: grid;    height: 500px;    border: 1px dashed green;    grid-template-rows: repeat(3, 50px);    grid-template-columns: repeat(3, 50px);    place-content: center;}

          grid-row-start & grid-row-end & grid-column-start & grid-column-end 指定项目位置

          属性取值

          属性值说明
          number从第几个网格线开始,到第几个网格线结束
          name需要先定义网格线
          span number表示跨域几个网格

          使用

          .container {    display: grid;    grid-template-rows: repeat(3, 50px);    grid-template-columns: repeat(3, 50px);}.item-1 {    grid-row-start: 1;    grid-row-end: 3;    grid-column-start: 1;    grid-column-end: 3;}
          .container {    display: grid;    grid-template-rows: [c1] 50px [c2] 50px [c3] 50px [c4];    grid-template-columns: [r1] 50px [r2] 50px [r3] 50px [r4];}.item-1 {    grid-row-start: c1;    grid-row-end: c3;    grid-column-start: r1;    grid-column-end: r3;}
          .container {    display: grid;    grid-template-rows: repeat(3, 50px);    grid-template-columns: repeat(3, 50px);}.item-1 {    grid-row-start: span 2;    grid-column-start: span 2;}

          grid-column & grid-row 简写形式

          grid-column 是 grid-column-start 和 grid-column-end 的合并简写形式

          grid-row 是 grid-row-start 和 grid-row-end 的合并简写形式

          .container {    display: grid;    grid-template-rows: repeat(3, 50px);    grid-template-columns: repeat(3, 50px);}.item-1 {    grid-column: 1 / 3;    grid-row: 1 / 3;}

          grid-area 简写形式

          .container {    display: grid;    grid-template-rows: repeat(3, 50px);    grid-template-columns: repeat(3, 50px);}.item-1 {    grid-area: 1/1/3/3;}

          align-self & justify-self 设置项目的垂直位置和水平位置

          属性取值

          属性值说明
          stretch默认值,拉伸
          start开始位置
          center居中位置
          end结束位置

          使用

          .container {    display: grid;    grid-template-rows: repeat(3, 50px);    grid-template-columns: repeat(3, 50px);}.item-1 {    align-self: end;    justify-self: end;}

          place-self 简写形式

          .container {    display: grid;    grid-template-rows: repeat(3, 50px);    grid-template-columns: repeat(3, 50px);}.item-1 {    place-self: end;}

          案例

          圣杯布局

                            圣杯布局(grid)          * {        padding: 0;        margin: 0;      }      html {        width: 100%;        height: 100%;      }      body {        display: grid;        grid-template-rows: 80px 1fr 80px;        grid-template-columns: 200px auto 200px;        grid-template-areas:          "header header header"          "left main right"          "footer footer footer";        height: 100%;      }      .header {        grid-area: header;        background-color: red;      }      .left {        grid-area: left;        background-color: yellow;      }      .main {        grid-area: main;        background-color: aqua;      }      .right {        grid-area: right;        background-color: bisque;      }      .footer {        grid-area: footer;        background-color: gray;      }      .grid-center {        display: grid;        justify-items: center;        align-items: center;      }            header    left    main    right    footer  

上一篇:lol台湾服务器怎么玩?

下一篇:怎么开个服务器公司的?