Grid

5. Gridシステム

CSS Gridは、2次元レイアウト(行と列)のための最強ツールです。
複雑な「聖杯レイアウト」も数行で実現。Flexboxと組み合わせれば、ほぼあらゆるレイアウトが可能になります。

🎮 Grid プレイグラウンド
16px
6
1
2
3
4
5
6
.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: auto;
  justify-items: stretch;
  align-items: stretch;
  gap: 16px;
}

grid-template-areas: 名前でエリアを配置

エリアに名前を付けて、視覚的にレイアウトを定義できます。これが「聖杯レイアウト」です。

📐 聖杯レイアウト
ヘッダー
サイドバー
メイン
フッター
.container {
  display: grid;
  grid-template-columns: 150px 1fr;
  grid-template-rows: auto 1fr auto;
  grid-template-areas:
    "header header"
    "sidebar main"
    "footer footer";
}
.header  { grid-area: header; }
.sidebar { grid-area: sidebar; }
.main    { grid-area: main; }
.footer  { grid-area: footer; }

📌 覚えておきたいポイント

  • display: grid を親要素に指定
  • fr 単位は「残りスペースの比率」を表す
  • repeat() で繰り返しを簡潔に書ける
  • minmax() で最小・最大幅を指定
  • auto-fit / auto-fill でレスポンシブなグリッド
  • grid-template-areas で視覚的にエリア配置