読み込み中...

CSSを使って画像を中央寄せにする方法 – 完全解説ガイド

CSS 画像の中央寄せを徹底解説 CSS
この記事は約8分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

Webページ制作において、画像の中央寄せはとても重要な要素の一つです。

しかし、初心者にとっては簡単なことのように思えるかもしれませんが、実際にはCSSを使って画像を中央寄せする方法は様々なテクニックがあります。

この記事では、CSSを使って画像を中央寄せする方法を初心者向けに完全解説します。

また、具体的なサンプルコードを用いた使い方の説明や応用例など、詳細に解説します。

●CSSを使った画像の中央寄せ方法

画像やテキスト、そしてその他の要素をウェブページ上で中央に配置することは、ウェブデザインの基本的なテクニックの1つです。

特に画像は、視覚的な魅力を持つため、その配置がページの全体的な印象に大きな影響を与えます。

CSSを使って、画像を中央寄せする方法には、margin、text-align、そしてflexboxという3つの主要な方法があります。

これらの方法を詳しく、そして順を追って解説していきましょう。

○marginを使った方法

まず、marginを使用した中央寄せ方法について考えてみます。

この方法は、要素の外側の余白を操作することで中央配置を実現するものです。

下記のCSSコードは、marginを利用して画像を水平方向に中央寄せするものです。

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

このコードは、imgタグに対して2つの主要なスタイルを適用しています。

まず、display: blockという宣言により、画像をブロックレベルの要素として扱います。

ブロックレベルの要素は、通常、その前後に改行が入る特性を持つため、独自の行を占有します。

次に、margin: 0 autoという宣言は、上下のマージンを0に固定し、左右のマージンを自動的に調整します。

このautoの値がキーとなり、ブロック要素の画像がその親要素の中央に配置されることを保証します。

次に、text-alignを使用した中央寄せ方法を見てみましょう。

この方法は、特にインライン要素やインラインブロック要素を中央寄せする際に非常に便利です。

下記のCSSは、親要素のテキスト整列を使用して画像を中央寄せする例です。

.parent {
  text-align: center;
}

img {
  display: inline-block;
}

このコードでは、.parentクラスを持つ要素内のテキストやインライン要素が中央に配置されるようにtext-align: centerを指定しています。

一方、img要素はdisplay: inline-blockにより、インラインブロック要素として扱われます。

インラインブロックは、インライン要素の特性とブロック要素の特性を併せ持つため、テキストと同じ行に表示されつつ、高さや幅などの寸法を指定することができます。

この結果、.parent内のimg要素は、テキストのように中央寄せされます。

○text-alignを使った方法

画像を中央寄せにする方法の一つとして、CSSのtext-alignプロパティを活用する方法が存在します。

この方法は、主にテキストの配置を決めるためのプロパティですが、インライン要素やインラインブロック要素に対しても同様の効果を持ちます。

したがって、画像もこのプロパティの影響を受けることとなります。

この方法で画像を中央寄せにするための具体的なコードを紹介します。

.parent {
  text-align: center;
}

img {
  display: inline-block;
}

このコードは、まず.parentクラスを持つ要素(例えば、親のdiv要素)に対して、text-align: center;を適用することで、その子要素に対して中央揃えのスタイルを与えています。

次に、imgタグにdisplay: inline-block;を適用することで、画像をインラインブロック要素として扱い、親要素のtext-alignプロパティの影響を受けるようにしています。

これにより、画像は親要素の中心に位置するようになります。

○flexboxを使った方法

近年、Webデザインの現場で頻繁に使用されているのがflexboxです。

これは、コンテナ内のアイテムを柔軟に配置するための強力なツールとなっています。

特に、アイテムを容易に中央寄せにする機能は多くのデザイナーや開発者に評価されています。

flexboxを用いて画像を中央寄せにする方法を紹介します。

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

img {
  display: block;
}

このコードは、.parentクラスを持つ要素に対して、display: flex;を指定することで、その要素をflexコンテナに変換しています。

justify-content: center;align-items: center;は、それぞれ水平方向と垂直方向にアイテムを中央に配置する指示となります。

そのため、このコードを適用することで、imgタグは親要素の中心に位置するようになります。

●応用例とサンプルコード

画像を中央寄せする方法を応用して、いくつかの例を紹介します。

○ロゴ画像を中央に配置する

Webページのヘッダー部分にロゴを配置することは非常に一般的です。

下記のコードは、ロゴ画像をヘッダー部分の中央に配置するための方法を表しています。

<header>
  <div class="logo">
    <img src="logo.png" alt="ロゴ">
  </div>
</header>

header {
  background-color: #eee;
  padding: 20px;
}

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

img {
  display: block;
}

このコードは、ヘッダー内でロゴ画像を中央に表示する目的で構築されています。

まず、header要素に背景色を設定し、外側の余白を追加するためにpaddingを使用します。

ロゴを中央寄せするためには、フレキシブルボックス(flexbox)のレイアウトを利用しています。

この.logoクラスの要素は、子要素を水平および垂直方向の中央に配置することができるようになります。

最後に、画像要素はブロック要素として表示されることを保証するために、display: block;が指定されています。

○ボタン画像を中央に配置する

次に、ボタン画像をページの中央に配置するシナリオを考えます。

<div style="text-align: center;">
  <img src="ボタン画像のURL" style="display: inline-block;">
</div>

このコードは、親要素であるdivタグにテキストの中央寄せスタイルを適用して、その中のボタン画像も中央寄せされるようにしています。

具体的には、text-align: center;スタイルがこの中央寄せを実現しています。

そして、ボタン画像自体はインラインブロック要素として表示されることを保証するために、display: inline-block;が指定されています。

この指定により、画像は文中のインライン要素のように動作し、周囲のテキストや他のインライン要素と同じ行に配置され、余分な余白も追加されません。

○テキストと画像を中央に配置する

最後に、テキストと画像を中央に配置する方法を紹介します。

この方法は、ページ内のコンテンツを中央に配置するためによく使われます。

まず、テキストと画像を含むdivタグを作成します。

そして、divタグにtext-align: center;を指定し、テキストと画像にそれぞれdisplay: inline-block;を指定します。

また、テキストにはvertical-align: middle;を指定して、垂直方向に中央に揃えます。

テキストと画像を一緒に中央寄せにする場合は、次のようなコードが役立ちます。

<div style="text-align: center;">
  <span style="display: inline-block; vertical-align: middle;">テキスト</span>
  <img src="画像のURL" style="display: inline-block; vertical-align: middle;">
</div>

このコードは、テキストと画像が水平方向に中央揃えされ、さらに垂直方向も中央に位置するように設計されています。

まず、外側のdivタグは子要素を水平方向に中央に配置するためのtext-align: center;が指定されています。

次に、テキスト要素と画像要素は、インラインブロックとして表示され、それぞれがvertical-align: middle;スタイルによって垂直方向の中央に位置するように指定されています。

これらのテクニックを覚えておくことで、Webページのデザインの質を向上させ、さらに多様なデザイン要件に対応することができるようになります。