【しーえすえすぐりっど】

CSSグリッド とは?

💡 行と列で要素を配置する「レイアウトの設計図」
📌 このページのポイント
CSS Grid レイアウト grid container col 1 (1fr) col 2 (1fr) col 3 (1fr) row 1 row 2 row 3 Header(3列結合) grid-column: 1 / 4 Sidebar 2行結合 grid-row: 2/4 Main Content grid-column: 2 / 4 Card A Card B 主なプロパティ grid-template-columns grid-template-rows grid-column grid-row gap grid-area Flex vs Grid Flex = 1次元(行 or 列) Grid = 2次元(行 と 列) 行と列の2次元レイアウトで複雑な配置を実現
CSS Grid:行と列を使った2次元レイアウトで柔軟にアイテムを配置する
ひよこ ひよこ

CSSグリッドって何?

ペンギン先生 ペンギン先生

CSSで行と列を作って、要素を格子状に配置するレイアウト手法だよ。「display: grid」で格子の枠組みを作り、「grid-template-columns: 1fr 1fr 1fr」で3列の等幅レイアウトが簡単にできるんだ。

ひよこ ひよこ

「fr」って何?

ペンギン先生 ペンギン先生

fraction(分数・割合)の略で、利用可能なスペースを分配する単位だよ。「1fr 2fr」だと全体を3等分して左に1/3、右に2/3を割り当てる。pxやパーセントより直感的にスペースを配分できるから便利なんだ。

ひよこ ひよこ

Flexboxがあるのにグリッドも必要なの?

ペンギン先生 ペンギン先生

Flexboxは一方向(横か縦)の配置が得意だけど、グリッドは縦横同時に制御できる。たとえば「ヘッダー・サイドバー・メインコンテンツ・フッター」みたいなページ全体のレイアウトはグリッドが圧倒的に楽だよ。両方を場面に応じて使い分けるのがベストだね。

ひよこ ひよこ

おもしろい!CSSグリッドで高度なテクニックってある?

ペンギン先生 ペンギン先生

grid-template-areasを使うと、レイアウトをASCIIアートみたいに視覚的に定義できるんだ。「"header header" "sidebar main" "footer footer"」のように書くとそのままの配置になる。さらにminmax()とauto-fillを組み合わせた「repeat(auto-fill, minmax(300px, 1fr))」は、メディアクエリなしでレスポンシブなグリッドが作れる超便利なパターンだよ。ただ、subgridという機能がまだ発展途上で、入れ子のグリッド要素を親グリッドの行列に揃えたいときにブラウザ対応状況を確認する必要がある。CSSグリッドは書けるレイアウトの幅が広い分、最適解を見つけるのに経験が要るんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
CSSグリッド」って出てきたら「CSSで行と列を使って格子状にレイアウトする仕組みのことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「CSS Grid Layout」 = CSSの格子レイアウト
💬 Gridは「格子・碁盤の目」。要素を碁盤の目のように行と列で配置するレイアウトだよ
← 用語集にもどる