メモ:flex-wrapのセンター寄せ

やりたい事

基になるコード(base.html) の実行
(画面幅を変えると挙動が確認できる)

基になるコード:base.html

問題点

JavaScriptを使えば上記の②ができそうなのでトライ

実行するコード:test.html

test.html の実行
(画面幅を動かしていくと、段階的に area の幅が変わる)

test.html の実行結果を別画面で表示
とりあえずやりたい事は満たしているが、
CSSだけのやり方があるかもしれないので継続課題としたい

これを書いた数日後、級友から grid の存在を教わったので追記

grid を使うと、CSSだけで上記の①が実現できた

実行するコード:grid_test.html

grid_test.html の実行

grid_test.html 実行結果を別画面で表示
素晴らしい…

さらに数日後、思いついたことを試したので追記

上記①を、既知の手法だけでやったみた

実行するコード:CSS_only.html

css_only.html の実行

css_only.html 実行結果を別画面で表示
わかり易いようにボーダーを消さずに実行:with_border.html の実行

with_border.html 実行結果を別画面で表示
疑似要素を使うというサイトが幾つかあったが、どれも列数固定だった。
列数可変に対応させるにはやはりスクリプトが必要なものばかり。
ふと思いついた手法を試してみたら一応できたが、美しくない気がする…

参考になったサイト

(個人的まとめ)よく使うflexboxの設定
HTMLElement.offsetWidth
window.getComputedStyle() で要素のスタイルを取得する

CSS Gridを使ったレスポンシブ対応の基本レイアウト
【CSS】グリッドレイアウト、縦や横で要素の中央揃え方法