CSS のセンタリング、結局どれを使うか

CSS フロントエンド

「中央に置く」だけで何通りもやり方があって、毎回どれだったか迷います。 いろいろ試した結果、自分はほぼ次の二択に落ち着いたので、その二つだけメモしておきます。

縦も横も中央:Flexbox

いちばん出番が多いのはこれです。親にこれを指定すれば、中の要素が上下左右まん中に来ます。

.box {
  display: flex;
  justify-content: center;  /* 横 */
  align-items: center;      /* 縦 */
}

横方向だけ中央:margin auto

幅の決まったブロックを横だけ真ん中にしたいときは、昔ながらのこれがいちばん素直でした。

.box {
  max-width: 720px;
  margin: 0 auto;
}

迷ったら Flexbox、幅が決まったブロックなら margin auto。この分け方にしてから、悩む時間が減りました。

新しい書き方も次々出てきますが、「自分がすぐ思い出せる手札」を少数持っておくほうが、 現場では速い気がしています。