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