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

CSS Grid とは?

最終更新:
💡 Webレイアウトの「方眼紙」
📌 このページのポイント
CSS Grid レイアウト header grid-column: 1 / -1 sidebar 1fr main 3fr footer display: grid; grid-template- columns: 1fr 3fr; grid-template- rows: auto 1fr auto; gap: 5px; /* 名前付きエリア */ Gridの特徴 行と列の2次元レイアウト 柔軟なサイズ指定(fr単位)
CSS Gridのイメージ
ひよこ ひよこ
FlexboxCSS Gridはどう使い分ける?
ペンギン先生 ペンギン先生
Flexboxは1次元(横並びor縦並び)のレイアウトに最適。ナビゲーションバーやカード一列並びに使う。CSS Gridは2次元(行と列の両方)のレイアウトに最適。ページ全体のレイアウトや画像ギャラリーに使う。両方を組み合わせるのが現代のCSS設計の基本だよ
ひよこ ひよこ
基本的な書き方は?
ペンギン先生 ペンギン先生
display: gridで有効化して、grid-template-columns: 1fr 1fr 1frで3等分の列を作る。fr(fraction)は空き領域の比率。repeat(3, 1fr)と書いてもOK。gapプロパティで要素間の隙間を設定。auto-fillやminmax()を使えばレスポンシブなグリッドがメディアクエリなしで作れるよ
ひよこ ひよこ
レスポンシブ対応は?
ペンギン先生 ペンギン先生
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr))がレスポンシブの魔法の一行。「最小300px、残りは均等分配、入りきらなければ折り返す」という指定。画面幅に応じてカラム数が自動で変わる。メディアクエリを書かずにレスポンシブが実現できるんだよ
ひよこ ひよこ
名前付きエリアって何?
ペンギン先生 ペンギン先生
grid-template-areasで視覚的にレイアウトを定義できる。"header header header" "sidebar main main" "footer footer footer"のように文字列でレイアウトを描く。各要素にgrid-area: headerのように名前を付けるだけ。コードを見るだけでレイアウトが想像できるから、保守性も高いよ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
CSS Grid」って出てきたら「行と列で要素を格子状に配置するCSSレイアウト」と思えればだいたいOK!
📖 おまけ:英語の意味
「CSS Grid Layout」 = CSSグリッドレイアウト
💬 Grid(格子)状にレイアウトする。2017年に主要ブラウザが一斉対応したよ
← 用語集にもどる