読み込み中...

【CSS】中央寄せの方法と応用例を徹底解説!

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

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

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

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

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

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

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

はじめに

CSSを使うことで、HTMLで作成したウェブページの見た目をカスタマイズできます。

中でも、要素を中央寄せすることはよく使われるテクニックの一つです。

しかし、縦方向にも対応した中央寄せの方法は初心者にとっては少し難しいかもしれません。

本記事では、CSSで中央寄せする方法と、縦方向にも対応する方法を詳しく解説します。

また、応用例も紹介するので、実際に使ってみたい方はぜひ参考にしてください!

●CSSで中央寄せをする方法

CSSで要素を中央に配置する方法は、デザインのニーズや制約に応じて複数の手法が存在します。

今回はその中から3つの代表的な手法を取り上げ、それぞれの実装について詳しく探っていきます。

【方法1】text-alignプロパティを使用する方法

一番簡単な方法として、text-alignプロパティを使うことでテキスト要素を中央に配置することができます。

.center {
  text-align: center;
}

このコードは、.centerクラスが付与された要素内のテキストを中央寄せするためのシンプルなスタイルを提供しています。

text-alignプロパティは、テキストの水平方向の配置を指定するもので、ここではcenter値を使って中央寄せを適用しています。

このスタイルを適用したい要素に.centerクラスを付ければ、その要素内のテキストが中央寄せされるようになります。

具体的には、見出しや段落などのテキスト要素にこのクラスを付与することで、視覚的に中央に整列したテキストを得ることができます。

【方法2】marginプロパティを使用する方法

次に、marginプロパティを使用して、要素自体を中央寄せする方法を見ていきましょう。

.center {
  margin: auto;
}

このコードは、.centerクラスを持つブロックレベルの要素を水平方向に中央寄せする方法を表しています。

margin: auto;のスタイルは、要素の左右の余白を自動的に計算して均等に分配するものです。

しかし、この方法を使用する際は、要素がブロックレベルであることが前提となります。

ブロックレベル要素は、通常、コンテンツ全体の幅を占めるため、このスタイルが適切に機能するための条件となります。

【方法3】flexboxを使用する方法

そして最後に、flexboxを使用した中央寄せの方法を検討します。

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

このコードは、.parentクラスを持つ要素の子要素を中央寄せするためのスタイルを表しています。

flexboxは、要素の配置、方向、間隔などを柔軟に制御できる強力なツールです。

display: flex;は要素をflexコンテナに変換します。

justify-content: center;は子要素を水平方向に中央に配置し、align-items: center;は子要素を垂直方向に中央に配置します。

この結果、子要素は親要素の中心に正確に配置されます。

例として、<div><span>などの任意の要素をこの.parentクラスの親要素として使用することで、その子要素を簡単に中央寄せすることができます。

●縦方向にも対応する方法

縦方向の中央寄せは、特定のデザイン上の要件を満たすための一般的な要件の1つです。

これには、要素の内容が可変であるか、または動的に変更される場合や、要素が異なるデバイスや画面サイズに対応する必要がある場合など、様々なシナリオが考えられます。

下記の方法では、CSSを使用して要素を縦方向に中央寄せする方法を詳しく解説します。

【方法1】table-cellとvertical-alignプロパティを使用する方法

table-cellとvertical-alignプロパティの組み合わせは、要素を縦方向に中央寄せするクラシックな方法の1つです。

HTMLテーブルのセルの動作を模倣して、任意の要素を縦方向の中央に配置することができます。

.parent {
  display: table-cell;
  vertical-align: middle;
}

このコードは、.parentクラスを持つ要素を、テーブルセルのように動作させることを意味します。

display: table-cell;プロパティにより、要素はテーブルセルのように動作し、vertical-align: middle;プロパティによってその中の内容が縦方向の中央に寄せられます。

これは、テーブルのセルの内容が縦方向に中央寄せされる標準的な動作を模倣するものです。

HTMLには、このクラスを適用するための次のような構造が必要です。

<div class="parent">
  中央寄せされる要素
</div>

このようにすることで、中央寄せされる要素が表示されます。

【方法2】flexboxを使用する方法

flexboxは、近年のCSSの中でも特に強力なレイアウトツールの1つとして認識されています。

これを使用すると、要素を横方向、縦方向、または両方向に簡単に中央寄せすることができます。

.parent {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  height: 100%;
}

このコードは、.parentクラスを持つ要素の内部の要素を、縦方向に中央寄せするためのCSSルールセットを提供しています。

display: flex;は、要素にフレックスコンテナの性質を持たせます。

justify-contentalign-itemsは、それぞれ横方向と縦方向に子要素を中央寄せするためのプロパティです。

flex-direction: column;は、要素が縦方向にスタックされることを指定します。

最後に、height: 100%;により、フレックスコンテナは親要素の高さに合わせられます。

HTML構造としては、このクラスを適用するための次のようなものが必要です。

<div class="parent">
  <div class="child">
    中央寄せされる要素
  </div>
</div>

この方法により、.childとして指定された要素は、.parentコンテナの中央に配置されます。

flexboxはその強力な機能により、レスポンシブデザインや動的な内容を持つ要素の配置を容易にします。

●応用例

中央に配置する方法は、Webデザインの基本的なテクニックの1つであり、ウェブページの見た目やユーザー体験に大きく影響します。

ボタンやテキスト、画像などの要素をページの中心に配置することで、その要素の重要性や目立たせたい情報を強調することができます。

この方法を理解し、適切に適用することは、ウェブデザイナーやフロントエンドの開発者にとって必須のスキルと言えるでしょう。

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

ボタンを中央に配置する場合の基本的な手法としては、次のようなCSSが挙げられます。

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

このコードは、ボタンを水平方向の中央に配置するためのシンプルな方法を表しています。

display: block;により、ボタン要素がブロックレベルの要素として扱われ、その幅全体を占めるようになります。

margin: 0 auto;は、上下のマージンを0にし、左右のマージンを自動的に計算してボタンを水平方向の中央に配置する指定となっています。

このコードだけで、ページの幅全体を基準にしたボタンの中央配置が可能になります。

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

次に、テキストを中央に配置するためのCSSを見てみましょう。

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

このコードは、テキストやその他の要素を水平および垂直方向の両方向に中央に配置するための手法を表しています。

ここでは、フレックスボックスを使用しています。

display: flex;で親要素をフレックスコンテナに変換し、その内部の要素がフレックスアイテムとして振る舞うようになります。

justify-content: center;により、子要素を水平方向に中央に配置します。

そして、align-items: center;は子要素を垂直方向に中央に配置します。

このコードを用いれば、容易にテキストを中央に配置することができます。

○画像を中央に配置する

最後に、画像を中央に配置する方法を考えます。

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

このコードは、先ほどのボタンの例と同様の原理で動作します。

画像要素をブロックレベルにし、左右のマージンを自動に設定することで、画像を水平方向の中央に配置します。

これらの手法を組み合わせれば、さまざまなレイアウトやデザイン上のニーズに応じて、要素を中央に配置することができます。

Webページのデザインやレイアウトを考える際に、これらの基本的な技術を活用して、効果的なページ構成を目指しましょう。

●サンプルコード

要素を縦方向に中央に配置することは、ウェブデザインやレイアウト作成の際によく必要とされるタスクの一つです。

特にレスポンシブデザインが重要視される現代において、さまざまなデバイスサイズに適応するデザインを考慮する際、要素の中央配置は必須のテクニックとなっています。

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

まず、ボタンを水平方向に中央に配置する方法を考えてみましょう。

<!DOCTYPE html>
<html>
  <head>
    <style>
      button {
        display: block;
        margin: 0 auto;
      }
    </style>
  </head>
  <body>
    <button>ボタン</button>
  </body>
</html>

このコードは、ボタンを水平方向の中心に配置するためのものです。

ボタンに適用されているCSSスタイルの中で、display: block;という宣言によってボタン要素をブロックレベル要素として扱います。

これにより、ボタンが行全体を占めるようになります。

次に、margin: 0 auto;によって、ボタンの上下のマージンを0にし、左右のマージンを自動的に計算することで、水平方向の中心に配置します。

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

次に、テキストを水平・垂直方向の両方に中央に配置する方法を考察します。

<!DOCTYPE html>
<html>
  <head>
    <style>
      .container {
        display: flex;
        justify-content: center;
        align-items: center;
        height: 200px;
      }
    </style>
  </head>
  <body>
    <div class="container">
      <p>テキスト</p>
    </div>
  </body>
</html>

このコードは、テキストを水平・垂直の両方向で中央に配置する方法を表しています。

こちらのスタイルでは、.containerクラスにdisplay: flex;を適用することで、この要素内の子要素に対してフレックスボックスの特性を持たせます。

justify-content: center;によって子要素(この場合は<p>テキスト</p>)を水平方向に中央に配置し、align-items: center;で垂直方向にも中央に配置します。

height: 200px;は、このサンプルのコンテナの高さを表しています。

○画像を中央に配置する

最後に、画像を水平方向に中央に配置する方法をみてみましょう。

<!DOCTYPE html>
<html>
  <head>
    <style>
      img {
        display: block;
        margin: 0 auto;
      }
    </style>
  </head>
  <body>
    <img src="画像のURL" alt="画像の説明">
  </body>
</html>

このコードは、画像を水平方向の中心に配置するためのもので、先ほどのボタンの例と同様の原理を用います。

display: block;で画像要素をブロックレベル要素として扱い、margin: 0 auto;で左右のマージンを自動的に計算して中央に配置します。

まとめ

これらのテクニックは、さまざまなデザインの要件に応じて組み合わせたり、微調整することで、様々なレイアウトを実現することができます。

この記事が、ウェブページのデザインやレイアウト作成に関心のある読者の皆様の参考になれば幸いです。