CSS
 Computer >> コンピューター >  >> プログラミング >> CSS

CSS Flexboxで要素を上下左右(垂直・水平方向)に中央揃えする方法

CSS Flexboxで要素を上下左右(垂直・水平方向)に中央揃えする方法

CSSのFlexbox(フレックスボックス)を使えば、要素を垂直方向・水平方向の両方で簡単に中央揃えできます。従来のようなfloatやpositionのテクニックに比べてコードがシンプルになり、可読性や保守性も大きく向上します。この記事では、Flexboxによる中央揃えの基本から実際の実装例までを解説します。

Flexboxで中央揃えを行う基本の考え方

Flexboxでの中央揃えは、親要素(フレックスコンテナ)に対してスタイルを指定するのがポイントです。子要素そのものに位置調整のCSSを書く必要はありません。

.container {
  display: flex;
  justify-content: center; /* 水平方向(主軸)の中央揃え */
  align-items: center;     /* 垂直方向(交差軸)の中央揃え */
}

各プロパティの役割

1. display: flex

親要素をフレックスコンテナとして設定し、直下の子要素をフレックスアイテムとして扱えるようにします。これがFlexboxレイアウトの起点となる指定です。

2. justify-content: center

主軸(デフォルトでは水平方向)に沿って、子要素を中央に配置します。横方向のセンタリングを担当します。

3. align-items: center

交差軸(デフォルトでは垂直方向)に沿って、子要素を中央に配置します。縦方向のセンタリングを担当します。

実装例:画面中央に要素を配置する

<div class="container">
  <div class="box">中央に表示される要素</div>
</div>
.container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh; /* ビューポート全体の高さを基準に */
}

height: 100vh を指定することで、画面全体を基準とした「ど真ん中」に要素を配置できます。モーダルやローディング画面など、さまざまな場面で応用できる定番テクニックです。

まとめ

Flexboxを使った中央揃えは、たった3行のCSSで実現できます。display: flexjustify-content: centeralign-items: center の組み合わせさえ覚えておけば、垂直・水平方向のセンタリングで悩むことはほぼなくなるでしょう。

以下は動画内でも紹介しているCodePenのデモです。実際にコードを編集しながら、中央揃えの挙動を手軽に確認できますので、ぜひ試してみてください。

  1. CSSとJavaScriptで作るツリービューの実装方法【サンプルコード付き】

    CSSとJavaScriptを組み合わせることで、Windowsのエクスプローラーのような、クリックで開閉できるツリービューを簡単に実装できます。本記事では、フォルダ構造を表現するツリービューを、実際に動くサンプルコードとともに解説します。 実装例 ポイントとなるのは、::before 疑似要素で▶アイコンを表示し、JavaScriptの classList.toggle() を使って子要素の表示・非表示を切り替える仕組みです。 <!DOCTYPE html> <html> <head> <meta name="viewport"

  2. CSSでWebサイト全体を水平方向に中央揃えする方法

    CSSを使ってWebサイトのコンテンツを水平方向(左右)に中央揃えするには、max-width と margin: auto を組み合わせるのが最もシンプルで定番の方法です。コンテナ要素の最大幅を指定し、左右のマージンを自動(auto)に設定することで、画面サイズに関わらず要素が常に中央に配置されます。以下に、実際のコード例を示します。コード例<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-sc