記事内にはプロモーションが含まれています

【CSS】画像を中央に配置する5つの方法

【CSS】画像を中央に配置する5つの方法 CSS

Webサイトのデザインにおいて、画像をきれいに中央に配置することは基本中の基本です。

しかし、「text-align: center を指定したのに動かない」「上下左右のど真ん中に配置したいのにズレる」といったトラブルに悩まされることは意外と多いのではないでしょうか。

画像が中央に寄らない原因の多くは、その画像が「インライン要素」なのか「ブロック要素」なのかを意識できていないことにあります。

また、近年ではFlexboxやGridといった便利な機能を使えば、もっと簡単にレイアウトを組むことが可能です。

この記事では、CSSを使って画像を中央に配置するための基本的な方法から、モダンな上下中央寄せのテクニック、背景画像の場合の指定方法まで、現在のWeb制作現場で使われている手法を網羅的に解説します。

【本記事の信頼性】
プロフィール
執筆者:マヒロ
  • 執筆者は元エンジニア
  • SES⇒大手の社内SE⇒独立
  • 現在はプログラミングスクールを運営
  • モットーは「利他の精神」
💻 本記事の検証環境(2026年2月確認)
  • OS:Windows 11 / macOS Sequoia
  • IDE:Visual Studio / VS Code / IntelliJ IDEA
  • その他:Chrome DevTools / 各言語最新安定版

※本メディアでは、上記環境にてコードの動作と情報の正確性を検証済みです。

基本中の基本!左右に中央寄せする2つのパターン

画像を左右の真ん中に配置したい場合、アプローチは主に2つあります。
どちらを使うべきかは、画像を「文字のように扱う」か「箱(ブロック)として扱う」かで決まります。

親要素に text-align: center を指定する

最もポピュラーで簡単な方法です。

画像(<img>)はデフォルトではインライン要素(文字と同じ扱い)であるため、親要素に「文字を中央揃えにしなさい」という命令を出すことで中央に配置されます。

<div class="parent">
    <img src="image.jpg" alt="画像">
</div>

<style>
.parent {
    text-align: center; /* 親要素に指定する */
}
</style>
この方法のポイントは、CSSを画像自体ではなく、画像を囲んでいる親要素(divなど)に指定することです。
text-align は中身のインライン要素を整列させるプロパティなので、画像がブロック要素(display: block)になっている場合はこの方法は効きません。

画像自体に margin: 0 auto を指定する

画像をブロック要素として扱い、左右の余白(margin)を自動調整(auto)させることで中央に配置する方法です。

画像のサイズに関わらず、親要素の幅の中で真ん中に配置されます。

<img src="image.jpg" alt="画像" class="center-img">

<style>
.center-img {
    display: block;   /* ブロック要素にする */
    margin: 0 auto;   /* 上下0、左右自動 */
}
</style>
<img> タグは元々インライン要素なので、margin: auto を効かせるためには、まず display: block; を指定してブロック要素に変更する必要があります。
その上で、左右のマージンを auto に設定すると、ブラウザが左右の余白を均等に計算して中央に配置してくれます。

【推奨】Flexboxで上下左右のど真ん中に配置する

「左右だけでなく、上下方向も含めてエリアのど真ん中に画像を置きたい」という場合は、Flexbox(フレックスボックス) を使うのが最も現代的で確実な方法です。

<div class="flex-container">
    <img src="image.jpg" alt="画像">
</div>

<style>
.flex-container {
    display: flex;           /* Flexboxを有効化 */
    justify-content: center; /* 左右の中央寄せ */
    align-items: center;     /* 上下の中央寄せ */
    height: 300px;           /* 高さを指定(親要素の高さが必要) */
}
</style>
親要素に display: flex; を指定し、justify-content: center; で水平方向の中央揃え、align-items: center; で垂直方向の中央揃えを行います。
たった3行で完璧な上下左右中央配置ができるため、現在のWeb制作では最も推奨されるテクニックです。

もっと簡単?Grid Layoutで中央配置

Flexboxと同様にモダンなレイアウト手法である CSS Grid を使うと、さらに短いコードで上下左右中央寄せが実現できます。

<div class="grid-container">
    <img src="image.jpg" alt="画像">
</div>

<style>
.grid-container {
    display: grid;         /* Gridを有効化 */
    place-items: center;   /* 上下左右を一括で中央寄せ */
    height: 300px;
}
</style>
Gridレイアウトには place-items: center; という便利なプロパティがあります。
これ1行だけで、子要素をセルの上下左右中央に配置することができます。
Flexboxよりもコード量が少なく済むため、単純な中央寄せであればこちらを選ぶデザイナーも増えています。

position: absolute を使った絶対配置

ヒーローヘッダー(トップページのメイン画像)の上にロゴを重ねて中央に置きたい場合など、要素を重ね合わせる際には position: absolute が役立ちます。

<div class="relative-parent">
    <img src="logo.png" alt="ロゴ" class="absolute-img">
</div>

<style>
.relative-parent {
    position: relative; /* 基準となる親要素 */
    height: 300px;
}

.absolute-img {
    position: absolute;  /* 絶対配置 */
    top: 50%;            /* 上から50%の位置へ */
    left: 50%;           /* 左から50%の位置へ */
    transform: translate(-50%, -50%); /* 自身の大きさの半分だけ戻す */
}
</style>
まず画像を top: 50%; left: 50%; で移動させますが、これだと「画像の左上」が中心に来てしまい、全体としては右下にズレて見えます。
そこで transform: translate(-50%, -50%); を使い、画像の幅と高さの半分(50%)だけ左上に移動させることで、画像の中心を親要素の中心にぴったり合わせています。

背景画像(background-image)を中央にする場合

<img> タグではなく、CSSの背景画像として表示する場合の中央寄せ設定も確認しておきましょう。

.bg-box {
    width: 100%;
    height: 400px;
    background-image: url('bg.jpg');
    background-repeat: no-repeat; /* 繰り返しなし */
    background-position: center;  /* 背景を中央に配置 */
    background-size: cover;       /* エリアいっぱいに覆う */
}
背景画像の位置を決めるのは background-position プロパティです。
ここに center を指定するだけで、画像の中心が要素の中心に来るように配置されます。
通常は background-size: cover;(要素の隙間なく埋める設定)とセットで使用されます。

画像が中央に寄らない時のチェックポイント

「コード通りに書いたはずなのに、なぜか中央に配置できない!」という場合、以下のポイントを確認してみてください。

  • display: block; を忘れていないか
    margin: 0 auto; を使う場合、画像自体に display: block; が指定されているか確認しましょう。
  • 親要素の幅や高さは十分か
    親要素の幅が画像と同じ(パンパン)だったり、高さがなかったりすると、中央に寄せるスペース自体が存在しないため動きません。
  • float や position が効いていないか
    float: left; や position: absolute; が指定されていると、通常の配置ルールから外れるため、text-align や margin が効かなくなります。

HTML/CSSのスキルを活かして年収を上げる方法

以上、CSSで画像を中央に配置する5つの方法について解説してきました。

なお、HTMLやCSSのスキルがある場合には、「副業で稼いで年収を上げる」といったことが可能です。
HTML/CSSのスキルを持つ人は多いものの、その分案件数も多く、副業エージェントやフリーランスエージェントを利用することで予想外の高単価案件が見つかることもあります。
エージェントサービスは、登録も利用もすべて完全無料なので、どんな求人や案件があるのか気になる方は、気軽に利用してみるとよいでしょう。
エンジニアのキャリア・スキルアップ相談窓口
当ブログの読者に選ばれている、実績豊富な転職エージェントを厳選しました。
【転職】年収・環境を改善したい
年収アップにこだわりたい方 (平均アップ額138万円の実績)
未経験・経験者問わず幅広く探したい方
業界に精通した担当者に相談したい方
ゲーム業界への転職を志望する方
エンジニア未経験からキャリアを築く方
【独立】フリーランスとして稼ぎたい
国内最大級のフリーランス案件数から比較したい方
週1〜3日など柔軟な働き方を希望する方
【学習】スキルに不安のある方向け(格安スクール「デイトラ」)