【初心者必見】HTMLで画像を中央寄せする方法まとめ|img・CSS・flex・marginの違いを完全解説

【初心者必見】HTMLで画像を中央寄せする方法まとめ|img・CSS・flex・marginの違いを完全解説

2026.01.08

はじめに:なぜ画像は勝手に左に寄るのか?

HTMLで画像を置くと、ほぼ確実に「左寄せ」になります。

最初のころ、私は何度もこう思いました。

「なんで中央にならないんだ…?」

でも原因は単純です。

imgタグの性質を理解していないだけ。

この記事では、

  • なぜ中央寄せできないのか
  • 一番安全な方法はどれか
  • flexやgridはいつ使うべきか
  • スマホ崩れ・横スクロール問題の回避法

まで、実務レベルで整理します。


結論:迷ったら「display:block + margin:0 auto」

画像を中央寄せしたいなら、まずこれを覚えましょう。

img {
  display: block;
  margin: 0 auto;
}

これが最も汎用性が高く、事故が少ない方法です。


なぜ中央寄せできないのか?(本質)

imgはデフォルトでインライン要素

インライン要素の特徴:

  • margin:auto が効かない
  • width指定が効きにくい
  • text-alignの影響を受ける

だから中央にならない。


方法①:text-alignで中央寄せ

<div class="img-wrap">
  <img src="sample.jpg" alt="サンプル画像">
</div>
.img-wrap {
  text-align: center;
}

仕組み

インライン要素は text-align の影響を受けます。

向いているケース

  • 文章中の画像
  • 単純な中央配置

向いていないケース

  • width制御を細かくしたい場合
  • レイアウト制御を伴う場合

方法②:display:block + margin:auto(実務推奨)

img {
  display: block;
  margin: 0 auto;
}

なぜ効く?

block要素は左右マージンを自動計算できるから。

特徴

  • 安定
  • width指定と相性良い
  • 横スクロール事故が少ない

width指定がないとどうなる?

blockでも widthが100%なら中央の概念がなくなります。

img {
  width: 300px;
}

または

img {
  max-width: 100%;
}

状況に応じて使い分けます。


方法③:flexboxで中央寄せ

.img-wrap {
  display: flex;
  justify-content: center;
}

向いているケース

  • 横並びレイアウト
  • 複数要素を中央寄せ
  • ボタン+画像のセット配置

注意

親要素に display:flex が必要。


方法④:gridで中央寄せ

.img-wrap {
  display: grid;
  place-items: center;
}

メリット

  • 横も縦も中央可能
  • コードがシンプル

上下左右を完全中央にする方法

.img-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
}

または

.img-wrap {
  display: grid;
  place-items: center;
}

中央寄せできない原因チェックリスト

✔ imgがinlineのまま
✔ widthが100%になっている
✔ 親要素にtext-alignがない
✔ CSSが読み込まれていない
✔ position:absoluteで制御している

ほとんどはここ。


DevToolsで確認する手順

  1. Elementsでimgを選択
  2. Computedタブでdisplay確認
  3. margin値を確認
  4. 親要素のレイアウト確認

レイアウト崩れは必ずDOMに出ます。


レスポンシブでの最重要設定

img {
  max-width: 100%;
  height: auto;
}

これを入れないと、

  • スマホで横スクロール発生
  • 画像が画面からはみ出す

横スクロールが出る典型例

  • 固定幅画像(width:1200px)
  • 親にoverflow制御なし
  • box-sizing未指定

安全策:

* {
  box-sizing: border-box;
}

よくある初心者ミス

  • brで中央に見せる
  •  で位置調整
  • positionで無理やり中央

これらはレスポンシブで崩れます。


使い分け早見表

状況 推奨方法
単純中央 block + margin
文章内 text-align
横並び制御 flex
上下左右中央 grid

画像とレイアウト設計の関係

画像は単体で考えない。

  • 親要素のdisplay
  • width指定
  • レスポンシブ設計

ここがセット。


まとめ:中央寄せは「仕組み」を理解するだけ

画像中央寄せは難しくありません。

本質はこれだけ。

  • imgはインライン
  • margin:autoはblockに効く
  • 親要素が重要

迷ったら:

img {
  display: block;
  margin: 0 auto;
}

まずはここから。

仕組みを理解すれば、
レイアウトの悩みは一気に減ります。

タグ:

#CSS #HTML #レイアウト #画像配置 #初心者向け