幅・高さが不明な要素を上下左右中央配置する

昨日の記事の発展版。

といっても特殊なことは全然なくて、やはり引き続き transform:translate を使う。

top:50% の他に left:50% も入れ、transform:translate(-50%, -50%) で X 方向と Y 方向の両方を自分の要素の半分だけマイナス方向にズラしてやるだけ。

position:absolute で浮かしたボックスの幅って、内容物によって決まるもんなのねー。ブロックモデルだと思って幅は基本 100% になってるんじゃないかなって思いがあったけど、translateX(-50%) で良いワケだ。

ちなみに transform プロパティは、transform:translateX(-50%) translateY(-50%) といった書き方で複数指定もできるらしい。書いた順に1つずつ変更が有効になっていくので、変形させる順番に注意。