Flexbox(Flexible Box Layout)は、要素のサイズが不明な場合や、画面サイズが変化する場合でも、要素を効率的に配置・整列・分配できるように設計された強力なツールです。
justify-content: space-between; などで、計算いらずの整列が可能。align-items: center; だけで解決します。order プロパティを使えば、HTMLを書き換えずに要素の並び順だけを変更できます。flex-wrap: wrap; を使うことで、スマホ画面では自動的に縦に並び替えるといった挙動が容易です。Flexboxを使う際は、常に「今は親要素(コンテナ)を操作しているのか、子要素(アイテム)を操作しているのか」を意識することが上達の近道です。思い通りにいかない時は、ブラウザの検証ツールで flexボタン を押して、ガイドラインを確認する癖をつけましょう。