CodeGym /课程 /Frontend SELF ZH /CSS Grid 基础

CSS Grid 基础

Frontend SELF ZH
第 27 级 , 课程 0
可用

1.1 Grid Layout 的基本原则

CSS Grid Layout 是构建复杂和响应式布局的强大工具。它为开发者提供了一个二维网格系统用于放置元素,这让简单和复杂的布局构建都变得更简单。我们来看看CSS Grid的基本概念和语法,不深入具体属性。

CSS Grid 的基本概念

  1. Grid 容器和 Grid 元素:
    • Grid 容器 — 包含 display: grid 的元素。这种元素成为网格的容器,它的所有直接子元素就成为 Grid 元素
    • Grid 元素 — 是 Grid 容器的直接子元素,放置在网格中
  2. 网格轴:
    • 主轴 (inline axis)块轴 (block axis): Grid 支持用于放置元素的两个轴 — 主轴和块轴。默认情况下,主轴是水平的,块轴是垂直的
  3. 网格单元 (Grid Cells):
    • 网格单元 — 是由行和列交叉形成的基本块。每个 Grid 元素占据一个或多个单元
  4. 网格线 (Grid Lines):
    • 网格线 — 是分隔行和列的水平和垂直线。它们用于相对于网格放置元素
  5. 网格区域 (Grid Areas):
    • 网格区域 — 是通过合并多个单元创建的命名区域,它们允许分组单元并在特定区域放置元素

1.2 语法元素

CSS Grid 的基本语法元素

1. 创建 Grid 容器:

    
      .container {
        display: grid; /* 或 display: inline-grid */
      }
    
  

2. 确定网格结构:

CSS
    
      .container {
        display: grid;
        grid-template-columns: 100px 200px 100px; /* 定义三个不同宽度的列 */
        grid-template-rows: 50px 100px; /* 定义两个不同高度的行 */
      }
    
  

3. 使用 grid-area 合并单元:

CSS
    
      .item1 {
        grid-area: 1 / 1 / 2 / 4; /* 元素占据第一行和前三列 */
      }
    
  

4. 自动放置元素:

CSS
    
      .container {
        display: grid;
        grid-auto-rows: minmax(100px, auto); /* 设置行的最小高度 */
      }
    
  

1.3 示例

用 CSS Grid 构建一个简单的布局:

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>CSS Grid Example</title>
          <style>
            .container {
              display: grid;
              grid-template-columns: 1fr 2fr 1fr;
              grid-template-rows: 100px 200px;
              gap: 10px;
            }

            .item {
              background-color: lightblue;
              padding: 20px;
              text-align: center;
            }
          </style>
        </head>
        <body>
          <div class="container">
            <div class="item">Item 1</div>
            <div class="item">Item 2</div>
            <div class="item">Item 3</div>
            <div class="item">Item 4</div>
            <div class="item">Item 5</div>
            <div class="item">Item 6</div>
          </div>
        </body>
      </html>
    
  

解释:

  • .container 容器设置了三列,第一和第三列占用了可用空间的相同比例,第二列占用的空间则是前两者的两倍
  • 设置了两个固定高度的行
  • 属性 gap 设置了网格单元之间的距离
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION