元素分佈

Frontend SELF TW
等級 27 , 課堂 3
開放

4.1 grid-column 屬性

CSS Grid Layout 提供了很棒的工具來管理網格中的元素排列。其中最主要的工具之一就是 grid-rowgrid-column 屬性。這些屬性讓開發者能夠精確指定 grid 元素應該佔據哪一行和哪一列,提供了對佈局的靈活性和控制力。

grid-column 屬性定義了元素在 grid 容器中應佔據的列。

語法:

    
      .grid-item {
        grid-column: start / end;
      }
    
  

其中:

  • start: 網格的起始線
  • end: 網格的結束線

範例 1: 將元素放置在特定列

在這個範例中,元素將被放在網格的第二和第三線之間,佔據第二列:

CSS
    
      .grid-item {
        grid-column: 2 / 3; /* 元素佔據網格的第二和第三線之間 */
      }
    
  

範例 2: 占用多列的元素

在這個範例中,元素將從第一線開始到第四線,佔據三列:

CSS
    
      .grid-item {
        grid-column: 1 / 4; /* 元素佔據從第一線到第四線 */
      }
    
  

範例 3: 使用 span 覆蓋多列

在這個範例中,元素將從當前位置開始,佔據兩列:

CSS
    
      .grid-item {
        grid-column: span 2; /* 元素佔據從當前位置開始的兩列 */
      }
    
  

4.2 grid-row 屬性

grid-row 屬性定義了元素在 grid 容器中應佔據的行。

語法:

    
      .grid-item {
        grid-row: start / end;
      }
    
  

其中:

  • start: 網格的起始線
  • end: 網格的結束線

範例 1: 將元素放置在特定行

在這個範例中,元素將被放置在網格的第一和第二線之間,佔據第一行:

CSS
    
      .grid-item {
        grid-row: 1 / 2; /* 元素佔據網格的第一和第二線之間 */
      }
    
  

範例 2: 占用多行的元素

在這個範例中,元素將從第二線開始到第四線,佔據兩行:

CSS
    
      .grid-item {
        grid-row: 2 / 4; /* 元素佔據從第二線到第四線 */
      }
    
  

範例 3: 使用 span 覆蓋多行

在這個範例中,元素將從當前位置開始,佔據三行:

CSS
    
      .grid-item {
        grid-row: span 3; /* 元素佔據從當前位置開始的三行 */
      }
    
  

範例 4. 使用負值

CSS
    
      .element {
        grid-row: 1 / -1; /* 元素從第一線開始並結束在最後一線 */
      }
    
  

4.3 組合 grid-row 和 grid-column 屬性

為了創建更複雜的佈局,可以組合 grid-rowgrid-column 屬性來精確控制元素的排列。

範例: 使用 grid-row 和 grid-column 的複雜佈局

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

            .item1 {
              background-color: lightblue;
              grid-row: 1 / 3; /* 元素佔據第一和第二行 */
              grid-column: 1 / 3; /* 元素佔據第一和第二列 */
            }

            .item2 {
              background-color: lightgreen;
              grid-row: 3 / 5; /* 元素佔據第三和第四行 */
              grid-column: 2 / 5; /* 元素佔據第二、第三和第四列 */
            }

            .item3 {
              background-color: lightcoral;
              grid-row: 1 / 2; /* 元素佔據第一行 */
              grid-column: 3 / 5; /* 元素佔據第三和第四列 */
            }
          </style>
        </head>
        <body>
          <div class="container">
            <div class="item1">Item 1</div>
            <div class="item2">Item 2</div>
            <div class="item3">Item 3</div>
          </div>
        </body>
      </html>
    
  

解釋:

  • 容器 .container 擁有四行和四列,每行及每列佔據相同的空間。
  • 元素 .item1 佔據前兩行及前兩列。
  • 元素 .item2 佔據第三及第四行以及第二、第三及第四列。
  • 元素 .item3 佔據第一行以及第三及第四列。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION