トラブルシュート

要素を上下中央に揃えたいのに揃わないときの対処

「上下中央に揃えたいのに揃わない」のは、CSSの中央揃えに複数の手法があり、前提条件が異なるためです。flexやgridを使えば数行で実現できますが、親要素の高さが決まっていないと中央の基準が定まりません。手法ごとの条件を押さえれば確実に揃えられます。

なぜ縦の中央揃えは難しいのか

横方向の中央揃えはtext-alignやmarginで比較的簡単に実現できますが、縦方向はそうはいきません。要素の高さや親の高さが決まっていないと、何を基準に中央へ置くかが定義できないためです。

「揃わない」と感じるケースの多くは、親要素に高さが指定されていない、あるいは中身の高さに合わせて親が伸縮しているために、中央揃えの効果が見た目に現れていない状態です。

flexboxで中央に揃える

もっとも手軽なのはflexboxです。親にflexを指定し、主軸と交差軸の両方を中央寄せにすれば、子要素は縦横とも中央に配置されます。子要素の数や高さが変わっても自動的に中央を保ちます。

ただし縦中央が見た目に効くには、親要素に十分な高さが必要です。高さがコンテンツと同じだと、中央に寄せても見た目は変わりません。高さを指定するか、画面の高さに合わせる単位を使って親を広げてください。

症状別チェック表

要素を上下中央に揃えたいのに揃わないは、症状を分けずに直そうとすると原因探しが長引きます。まず「自分だけで起きるのか」「全員で起きるのか」「特定ブラウザだけか」「差し替え後だけか」を切り分けます。

確認順序を固定すると、相対パス、ファイル名、キャッシュ、認証、外部読み込みのどこで止まっているかが見えます。修正後はローカル確認だけで終わらせず、実際の共有URLで再表示して、相手と同じ条件で直ったことを確認します。

  • 自分だけ表示されない: キャッシュ、ログイン状態、ブラウザ拡張、端末幅を確認する
  • 全員で表示されない: ファイル構成、相対パス、大文字小文字、アップロード漏れを見る
  • 一部だけ崩れる: CSS/画像/JSごとに読み込みエラーを分ける
  • 差し替え後だけ古い: URL、キャッシュ、更新対象ファイルの取り違えを確認する

gridとtransformの選択肢

gridでも中央揃えは簡単です。親にgridを指定し、配置を中央にするだけで子が縦横中央に置かれます。複数要素を格子状に並べつつ中央化したいときに向きます。

flexやgridが使えない場面では、絶対配置とtransformを組み合わせる古典的な方法があります。要素を親の中央に配置し、自身のサイズの半分だけ戻すことで中央を実現します。要素の高さが可変でも対応できるのが利点です。

中央揃えを確実にする手順

次の順で確認すると原因を切り分けやすくなります。

  1. 親要素に高さが指定されているか、または十分な高さがあるか確認する
  2. 親にflexを指定し、主軸と交差軸を中央寄せにする
  3. 格子状に並べたい場合はgridで中央配置を指定する
  4. flex/gridが使えない場合は絶対配置とtransformを使う
  5. 親の高さが中身と同じになっていないか改めて確認する

共有URLで見え方を検証する

中央揃えはフォントの行間やパディング、画面の高さによって微妙にずれて見えることがあります。複数の環境で同じ成果物を見比べると、本当に中央に見えているかを判断しやすくなります。

ギガサイト便に検証用のHTMLをドロップすれば共有URLが発行され、関係者が各自の画面サイズで中央揃えの見え方を確認できます。手法を変えた版を同じURLのまま差し替えれば、flexとtransformなどの結果を同条件で比較しやすくなります。

よくある質問

flexで中央寄せにしたのに揃いません。

親要素の高さが中身と同じだと、中央に寄せても見た目が変わりません。親に高さを指定するか、画面の高さに合わせる単位で親を広げてから中央揃えを適用してください。

横は中央になるのに縦だけ揃いません。

横はtext-alignやmarginで簡単に揃いますが、縦は基準となる高さが必要です。flexやgridを使い、親に十分な高さを与えると縦も中央に揃います。

flexとgridのどちらで中央揃えすべきですか。

単一要素を中央に置くだけならどちらでも構いません。複数要素を格子状に並べつつ中央化したいときはgridが扱いやすいです。

高さが可変の要素を中央に置きたいです。

flexやgridなら高さが変わっても自動で中央を保ちます。これらが使えない環境では、絶対配置とtransformで自身のサイズの半分戻す方法が可変高さに対応できます。

原因が分からないときはどこから確認すべきですか?

まず自分だけの問題か全員の問題かを分けます。次にシークレットウィンドウ、別ブラウザ、スマホで確認し、ファイル構成・相対パス・キャッシュ・認証設定を順に見ます。

関連記事

トラブルシュート

公開後にJavaScriptが動かないときの原因と直し方

ローカルでは動いていたボタンやアニメーションが公開後に反応しなくなった方向け。JavaScriptが止まる主な原因をファイルパスや読み込み順の観点で切り分け、自分で直せるかどうかを判断できます。

5分で読める
トラブルシュート

公開後に動画が再生されないときの対処

デモページや資料に埋め込んだ動画が公開後に再生されなくなった方向け。動画ファイルの添付漏れ・パスのズレ・ブラウザの自動再生制限を症状ごとに切り分け、自分でできる確認と対処を把握できます。

4分で読める
トラブルシュート

公開したHTMLのフォームが送信できないときの対処

問い合わせフォームやアンケートの送信ボタンが押せない・エラーになる方向け。静的ファイル公開ではフォームの動作に制約がある理由を理解し、外部サービス連携などの現実的な解決策を選べるようになります。

5分で読める
トラブルシュート

iframeが表示されないときの原因と対処

地図や外部コンテンツをiframeで埋め込んだのに公開後に枠が空白になった方向け。表示許可・HTTPSとHTTPの混在・相対パスのズレを症状ごとに切り分け、適切な対処を選べるようになります。

4分で読める
トラブルシュート

外部CDNのCSS・JSが読み込めないときの対処

CDNからCSSやJSを読み込む構成にしたらデザインが崩れて機能が動かなくなった方向け。URLの誤りやHTTPSの混在・バージョン指定の問題を原因ごとに整理し、確認と修正の手順を把握できます。

5分で読める
「トラブルシュート」の記事をもっと見る →