Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
No content
Slide 2
Slide 2 text
@tonkotsuboy_com 鹿野 壮
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
01 そもそも、CSS Gridとは?
Slide 5
Slide 5 text
CSS Gridとは 「行列」を使ったレイアウトのこと
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
エリア名を指定して要素を柔軟に配置
Slide 9
Slide 9 text
行列を繰り返したり、隙間をつくる
Slide 10
Slide 10 text
行・列数を自動で変更したり、要素を敷き詰めたりする
Slide 11
Slide 11 text
従来のブラウザで対応していたのは CSS Grid Layout Level 1 https://www.w3.org/TR/css-grid-1/
Slide 12
Slide 12 text
従来の仕様だと難しいレイアウトがあった
Slide 13
Slide 13 text
ウインドウサイズ: 大 カードの列数を可変にし、カードの各要素の高さを揃えたい
Slide 14
Slide 14 text
ウインドウサイズ: 小 カードの列数を可変にし、カードの各要素の高さを揃えたい
Slide 15
Slide 15 text
従来: CSSだけでは実現が不可能だった
Slide 16
Slide 16 text
JavaScriptを使って、行ごとの最大の高さを計算する 各行の高さを指定する ウインドウサイズが変わるごとに(あるいはブレイクポイントを 跨ぐごとに)高さを計算し直す 処理の負荷が高く、パフォーマンスの悪化につながる 従来: JavaScriptを使っていた
Slide 17
Slide 17 text
02 行列の入れ子が全ブラウザで可能になった
Slide 18
Slide 18 text
① 親行列をつくる
Slide 19
Slide 19 text
② 子行列をつくる
Slide 20
Slide 20 text
③ 親行列に子行列を配置する
Slide 21
Slide 21 text
行列の入れ子が可能な CSS Grid Layout Level 2 subgrid https://www.w3.org/TR/css-grid-2/
Slide 22
Slide 22 text
2023年9月にChrome・Edgeが対応し、全ブラウザ対応 https://caniuse.com/css-subgrid
Slide 23
Slide 23 text
Demo https://codepen.io/tonkotsuboy/pen/VwqmzeJ
Slide 24
Slide 24 text
HTML
1.HTMLのコーディング(親Grid)
Slide 25
Slide 25 text
HTML
Feeling Good
I AM A CAT. As yet I have no name.
Goods
1. HTMLのコーディング(子Grid)
Slide 26
Slide 26 text
CSS .card-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); } 2. 親要素をCSS Gridで配置する
Slide 27
Slide 27 text
CSS .card { display: grid; grid-template-rows: subgrid; grid-row: span 4; } 3. 子要素をCSS Gridで配置する
Slide 28
Slide 28 text
CSS .card-container { gap: 40px; } 4. 親行列で要素間の隙間(gap)を指定する
Slide 29
Slide 29 text
CSS /* 親のgap */ .card-container { gap: 40px; } /* 子のgap */ .card { row-gap: 12px; } 5. 子行列で要素間の隙間(gap)を指定する
Slide 30
Slide 30 text
DevToolでデバッグする
Slide 31
Slide 31 text
03 Subgridの活用例
Slide 32
Slide 32 text
画像のキャプションの高さを揃える https://codepen.io/michellebarker/pen/abVqwoK
Slide 33
Slide 33 text
12分割グリッドシステムを作る https://codepen.io/brianhaferkamp/pen/XWXEbPp
Slide 34
Slide 34 text
04 まとめ
Slide 35
Slide 35 text
CSS Gridは行列を使ったレイアウト Subgridを使えば、行列を入れ子にできる 2023年9月から、Chrome・Edge含めて全ブラウザ対応 さまざまな行列レイアウトに活用できる
Slide 36
Slide 36 text
新しい知識を取り入れて 楽しくラクにウェブ制作をしましょう
Slide 37
Slide 37 text
記事でも詳しく解説しています https://zenn.dev/moneyforward/articles/css-subgrid-all-browsers
Slide 38
Slide 38 text
No content