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

CSSグリッド とは?

最終更新:
💡 行と列のマス目で、ページの配置を組み立てよう

CSSで行と列を使って要素を配置する二次元のレイアウト機能。display: gridで作る格子に、要素を並べたり複数の列や行をまたがせたりできる。

📌 このページのポイント
CSSグリッド:行と列で配置例:3列のページヘッダー:3列をまたぐメニュー2行をまたぐ本文:2列をまたぐカードAカードBgrid-template-columns: 1fr 1fr 1fr隙間はgap、またぐ位置はgrid-columnなど
行と列の区切りを使い、複数のマスをまとめて配置できます。
ひよこ ひよこ
CSSグリッドは、何をするもの?
ペンギン先生 ペンギン先生
CSSで行と列を使って、要素の配置を決めるよ。親要素にdisplay: gridを指定すると、直接の子要素がグリッドの項目になる。カードを並べたり、ヘッダーを複数の列にまたがせたりできるんだ。
ひよこ ひよこ
3列に並べるには、どう書くの?
ペンギン先生 ペンギン先生
例えばgrid-template-columns: 1fr 1fr 1frで、使えるスペースを3つの列に分けるよ。gapでマス同士の隙間も指定できる。要素の内容に最低限必要な幅がある場合などは、列が想定どおりに縮まないこともあるんだ。
ひよこ ひよこ
1fr 2frなら、ページを1対2に分ける?
ペンギン先生 ペンギン先生
固定幅の列や隙間などを除いた、残りのスペースを1対2に分ける単位だよ。全体の幅をそのまま1対2にするという意味ではないんだ。必要に応じてminmax()で列の最小・最大の大きさも決められるよ。
ひよこ ひよこ
Flexboxとは、どう使い分けるの?
ペンギン先生 ペンギン先生
Flexboxは主に一方向、グリッドは行と列を合わせて配置するのが得意だよ。ページの骨組みをグリッドで作り、その中のボタンをFlexboxで並べることもできる。片方がいつも優れているわけではなく、揃えたい方向で選ぼう。
ひよこ ひよこ
入れ子のカードの見出しも揃えられる?
ペンギン先生 ペンギン先生
subgridを使うと、子のグリッドが親の行や列の区切りを引き継げるよ。主要ブラウザー間では2023年9月から利用できる機能として扱われている。古いブラウザーも対象にする場合は対応状況を確認しよう。grid-template-areasなら、名前を付けて配置を決めることもできるんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「CSSグリッド」って出てきたら「行と列のマス目で要素を配置するCSSの仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「CSS Grid Layout」 = CSSの格子レイアウト
💬 Gridは「格子・碁盤の目」。要素を碁盤の目のように行と列で配置するレイアウトだよ

参考資料

← 用語集にもどる