複雑なレイアウトもgrid-template-areasを使えば1分でできる!レスポンシブにもオススメ

CSS Grid Layoutを使ってサイズの違う複数のブロックを並べて組み合わせたレイアウトを作る場合はgrid-template-areasがオススメです

上杉

grid-template-areasをオンラインツールのLayoutit!で生成すれば下の画像のレイアウトが1分で作れます!

複雑なレイアウトもgrid-template-areasを使えば楽
.container {
  display: grid; 
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; 
  grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr; 
  gap: 0px 0px; 
  grid-template-areas: 
    "a b c d d d"
    "a e e f f f"
    "a h h j j j"
    "a i i k k l"
    "g i i k k l"
    "m m m m m m"; 
}
.b { grid-area: b; }
.c { grid-area: c; }
.d { grid-area: d; }
.e { grid-area: e; }
.f { grid-area: f; }
.a { grid-area: a; }
.g { grid-area: g; }
.h { grid-area: h; }
.i { grid-area: i; }
.j { grid-area: j; }
.k { grid-area: k; }
.l { grid-area: l; }
.m { grid-area: m; }

Layoutit!はブラウザで複雑なgridレイアウトのCSSコードを生成できるオンラインツールです。

https://grid.layoutit.com/

複雑なレイアウトをgridで実装してみた動画

もちろんgridの中にサブグリッドを作成して入れ子にすることも可能です

grid-template-areasを使えばレスポンシブも楽になる

gridで複雑なレイアウトを作ることで子要素が全て兄弟要素となるので、スマホで縦積みにしたい場合でも要素の順番を自由に入れ替えることができるのでレスポンシブ対応が楽になるというメリットがあります。

動画でも話しました!
ブログ一覧へ