2025 grid 04 - izudon/izudon.github.io GitHub Wiki


📘 Ⅳ. アイテム配置・領域構造・subgrid の総合チートシート

グリッド内の“アイテムの位置”・“領域の形”・“全体構造”を まとめて扱うための完全ガイド(12〜18統合版)


1️⃣ grid-column / grid-row(start / end 指定)

● 基本構文

grid-column: start / end;
grid-row:    start / end;

● 例

grid-column: 1 / 3;      ← 列線1〜3(横2セルぶち抜き)
grid-row:    2 / span 2; ← 行2から“2行ぶん”

● ポイント

  • line番号で場所を指定
  • span による相対指定あり(柔軟性◎)
  • 負数は「最後から」:-1(最終線)、-2(最後から2番目)

2️⃣ grid-area(4値ショートハンド or 名前指定)

● 4値形式(最強のショートハンド)

grid-area: row-start / column-start / row-end / column-end;

例:

grid-area: 1 / 2 / 4 / 5;

● 名前形式(areas と連携)

grid-area: main;

3️⃣ span(相対指定)

● 基本

grid-column: span 2;   ← 今いる位置から横に2セル分
grid-row:    3 / span 3;

● 使うべき場面

  • “大きさ”だけ決めて、“位置”は自動配置に任せたいとき
  • レスポンシブに強い(トラック数が変わっても壊れない)

● 注意

grid-column: -1 / span 2最終線から右へ伸ばす定義になり無効(右方向に伸ばせないため)。


4️⃣ grid-template-areas(領域マップによるレイアウト定義)

● 例

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; }

● 特徴

  • 人間にとって可視的なレイアウト設計
  • PC/SP 切替が template の書き換えだけで完了
  • ただし領域は必ず 矩形である必要がある

5️⃣ grid-template(columns + rows + areas の総合ショートハンド)

● 例

grid-template:
  "header header" 80px
  "sidebar main"  1fr
  "footer footer" 60px
  / 200px 1fr;

● 効果

  • 行・列・領域を 1つのブロックで定義(最も可読性が高い)
  • 論理的な“ページ構成”をそのまま CSS 化できる
  • 複雑レイアウトの設計が一気に簡潔に

6️⃣ 命名グリッドライン(line naming)

● 例

grid-template-columns:
  [sidebar-start] 200px
  [sidebar-end main-start] 1fr
  [main-end];

使用:

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

● 特徴

  • line番号を覚えずに済む
  • 多カラムレイアウトで圧倒的に読みやすい
  • 1本の線に複数名前を付けてもよい

7️⃣ subgrid(親の線を子に継承)

● 基本

.child {
  display: grid;
  grid-template-rows: subgrid;
  grid-template-columns: subgrid;
}

● 主な用途(2大用途)

カードUIの内部揃え(header/section/footer の段を揃える)

複数 article の内部構造を完全に揃える。

階層構造の列幅・行高さの統一

親 → 子 → 孫まで同じ線を共有し、 雑誌風/ダッシュボードを“ピクセル単位で綺麗にそろえる”。

● 注意点

  • 子要素の height/width は auto 的(固定しない)必要がある
  • gap も親のものを継承

8️⃣ 12〜18(Ⅳ章)の総合まとめ(1画面)

■ grid-column / grid-row
   行線・列線で位置決定。span / 負数も使える。

■ grid-area
   - 4値版:row-start / col-start / row-end / col-end
   - 名前版:areas と連携。

■ grid-template-areas
   レイアウトを文字マップで表し、人間に最もわかりやすい設計方法。

■ grid-template
   行・列・領域をまとめて書く最上位ショートハンド。PC/SP 切替にも最適。

■ line naming
   線に名前をつけ、grid-column: sidebar-start / main-start;
   のように読めるコードを作る。

■ subgrid
   親の線構造を子が共有。カード内部揃え、階層統一に最強。