Grid Areas

Frontend SELF JA
レベル 28 , レッスン 3
使用可能

9.1 プロパティ grid-template-areas

CSS Grid Layoutは、名前付きエリア (grid areas)を使用することで、複雑なレイアウトを作成するための強力な機能を提供するんだよ。 プロパティ grid-template-areas は、グリッドのエリアを設定して、要素をシンプルに配置するために使えるんだ。 このプロパティは、開発者がレイアウトを視覚的に整理し、保守を簡単にすることを可能にするよ。

grid-template-areas の基本的なコンセプト

  1. エリアの定義:
    • プロパティ grid-template-areas を使って、グリッドのさまざまなエリアに名前を設定することができるんだ
    • 各エリアの名前は、セルの長方形のグループを表すよ
  2. 名前付きエリアの使用:
    • 定義されたエリアは、各要素に対してプロパティ grid-area を指定することで、要素を配置するために使用できるんだ

grid-template-areas の構文:

    
      .container {
        display: grid;
        grid-template-areas:
          "header header header"
          "sidebar main main"
          "footer footer footer"
      }
    
  

Grid要素の構文:

    
      .header {
        grid-area: header;
      }

      .sidebar {
        grid-area: sidebar;
      }

      .main {
        grid-area: main;
      }

      .footer {
        grid-area: footer;
      }
    
  

説明:

  • 各行の grid-template-areas の値がグリッド内の行を表すんだよ
  • 各単語は、セルまたはセルのグループを表すよ
  • ドット (.) は空のセルに使えるんだ

9.2 grid-template-areas の使用例

完全な実装例:

CSS
    
      .grid-container {
        display: grid;
        grid-template-areas:
          "header header header"
          "sidebar main main"
          "footer footer footer";
        grid-gap: 10px;
      }

      .header {
        grid-area: header;
        background-color: #2ecc71;
        padding: 20px;
        text-align: center;
      }

      .sidebar {
        grid-area: sidebar;
        background-color: #3498db;
        padding: 20px;
        text-align: center;
      }

      .main {
        grid-area: main;
        background-color: #9b59b6;
        padding: 20px;
        text-align: center;
      }

      .footer {
        grid-area: footer;
        background-color: #e74c3c;
        padding: 20px;
        text-align: center;
      }
    
  
HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Grid Areas の例</title>
          <link rel="stylesheet" href="styles.css">
        </head>
        <body>
          <div class="grid-container">
            <div class="header">Header</div>
            <div class="sidebar">Sidebar</div>
            <div class="main">Main Content</div>
            <div class="footer">Footer</div>
          </div>
        </body>
      </html>
    
  

コードの説明:

  • .grid-container: display: gridgrid-template-areas を使って、Gridコンテナを定義して、グリッドレイアウトを設定するんだよ。この場合、レイアウトは3つの行で構成されているんだ:最初の行はヘッダー、2行目はサイドバーとメインコンテンツ、3行目はフッターだね
  • .header, .sidebar, .main, .footer: さまざまなグリッドエリアのスタイルを定義して、grid-area プロパティを使って、これらのエリアを grid-template-areas の名前と関連付けるんだ

9.3 空のエリアの管理

プロパティ grid-template-areas を使用すると、ピリオド (.) を使って空のスペースを表現することで、エリアを空のままにしておくことができるんだ。

完全な実装例:

CSS
    
      .grid-container {
        display: grid;
        grid-template-areas:
          "header header header"
          ". main ."
          "footer footer footer";
        grid-gap: 10px;
      }

      .header {
        grid-area: header;
        background-color: #2ecc71;
        padding: 20px;
        text-align: center;
      }

      .main {
        grid-area: main;
        background-color: #9b59b6;
        padding: 20px;
        text-align: center;
      }

      .footer {
        grid-area: footer;
        background-color: #e74c3c;
        padding: 20px;
        text-align: center;
      }
    
  
HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>空の Grid Areas</title>
          <link rel="stylesheet" href="styles.css">
        </head>
        <body>
          <div class="grid-container">
            <div class="header">Header</div>
            <div class="main">Main Content</div>
            <div class="footer">Footer</div>
          </div>
        </body>
      </html>
    
  

コードの説明:

  • .grid-container: ヘッダー、メインコンテンツ、フッターの3つのエリアでGridコンテナを作成するんだ。中央の行は、メインコンテンツの左右に空のエリアがあるよ
  • .header, .main, .footer: エリアのスタイルを定義して、grid-template-areas のエリア名と関連付けるんだ
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION