0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【CSS】画像を中央揃えする方法

Last updated at Posted at 2025-10-06

left 等を使って画像の位置を調整しているときに、画像を水平方向に中央寄せしたい。(原点を画像の中心にしたい)

left50percent_translate.png

このように、SAMPLE画像を真ん中に持ってきたい

結論

left を 50%にし、transform を translate(-50%, 0) とする。

#img {
    position: absolute;   //leftで画像の位置を調整したい場合に必要
    left: 50%;
    transform: translate(-50%, 0);
}

left だけ50%にすると

left を 50% という値にすると、親要素の幅の半分だけ、右に画像が移動します。

#img {
    position: absolute;   //leftで画像の位置を調整したい場合に必要
    left: 50%;
}

left50%.png

left を 50% にした図

しかし、このままだと、画像の左端の辺が中央に来てしまいます。

translate(-50%, 0) とは

transform に値を設定すると、画像を回転したり、拡大縮小したり、移動したり、いろいろ変形できます。

rotate0.3turn.png

30%回転させたり
(rotate(0.3turn))

scale3times.png

縦方向に3倍に引き伸ばしたり
(scale(1, 3))

translate を使うと、自分自身を移動させることが出来ます。

<例>

#img {
    position: absolute;
    transform: translate(30px, 50px);
}

topleft.png

何も指定しないと、左上

transformed.png

右に30px、下に50px移動した。

translate(30px, 50px) とすると、右に30px, 下に50px 移動できます。

つまり、translate(-50%, 0) とすると、左に(自分自身の幅の)50%、自分自身を移動させるということです。これで画像の基準が、中央に移動するので、

#img {
    position: absolute;
    left: 50%;
    transform: translate(-50%, 0);
}

left50percent_translate.png

中央揃えできた。画像の原点は中央上にある。

とすることで画像を水平方向の中心に移動できるというわけです。

垂直方向にも中心に移動したい場合

top にも 50% を指定し、transform(-50%, -50%) とします。

#img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

center.png

垂直方向にも中央揃え(ど真ん中)

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?