WordPressで横スクロールが出た時の対策

WordPressでサイトを作っていると、
ある日突然「横スクロールが出る」ことがあります。

特に、

  • フル幅レイアウトを使った
  • デザイン的に要素を少しズラした
  • 画像や背景を画面端まで広げた

こうした調整を入れたあとに、
見た目は問題ないのに横スクロールだけが出る、というケースは珍しくありません。

今回は、WordPress制作の実務で実際に遭遇した事例をもとに、
横スクロールが出た時の現実的な対策を整理します。


横スクロールが出る主な原因

WordPressで横スクロールが発生する原因は、ほぼ次のどれかです。

  • width: 100vw を使っている
  • calc(50% - 50vw) などで要素を中央基準からズラしている
  • 画像をマイナスマージンで重ねている
  • 固定px幅の要素を flex レイアウトで並べている
  • ブロックエディタ(Gutenberg)の自動CSSと自前CSSの併用

重要なのは、
原因が1つとは限らないという点です。

複数の要素がわずかに画面外にはみ出し、
その「合算」で横スクロールが発生していることがほとんどです。


「ここを直せば終わり」にならない理由

横スクロールが出た時、

このセクションが怪しい
ここを直せば消えるはず

と考えて1つずつ修正しても、
なかなか解消しないことがあります。

これは、

  • body はページ内の どこか1pxでもはみ出すと反応する
  • はみ出している要素が 複数同時に存在する

ためです。

つまり、
犯人探しよりも先に、全体を安定させる必要があるということです。


一番シンプルで確実な対策

結論から言うと、
次の1行で横スクロールが一発で消えるケースが非常に多いです。

html, body {
  overflow-x: hidden;
}

この指定は、

  • 100vw使用時のズレ
  • ブラウザごとの小数点誤差
  • 管理バーの有無による幅差
  • テーマとブロックCSSの噛み合い

といった 構造的なはみ出し をまとめて防ぎます。


「原因を隠しているだけ」ではないのか?

よくある不安ですが、
この対応は実務的には 逃げではありません

WordPressでは、

  • テーマ側でレイアウトを制御
  • ブロックエディタ側でも幅指定が入る
  • その上にカスタムCSSを追加する

という多層構造になりがちです。

この状況で
「bodyまで横スクロールを伝播させない」
という判断は、合理的な安全策です。

実際の制作現場では、

  1. overflow-x: hidden で全体を安定させる
  2. 必要に応じて、個別ブロックを整理する

という順番で対応することが多いです。


CSSはどこに書くべきか

この指定は、サイト全体にかかるCSS に入れるのが適しています。

理由は、

  • 特定ページだけの問題ではないことが多い
  • 今後追加するページでも再発する可能性がある

ためです。

/* サイト全体の横スクロール対策 */
html, body {
  overflow-x: hidden;
}

横スクロール対策で意識しておきたいこと

  • フル幅表現(100vw)は横スクロールとセットで考える
  • マイナスマージンは「はみ出す前提」で使う
  • ブロックエディタの自動CSSを過信しない

ただし、
すべてを完璧に制御しようとしなくていい、というのも事実です。


まとめ

  • WordPressの横スクロールは珍しい問題ではない
  • 原因は1つではなく、複数の要素が重なって起きる
  • まずは html, body { overflow-x: hidden; } で全体を安定させる
  • 問題がなければ、そのまま運用してOK

横スクロール対策は、
「きれいに直す」よりも
「再発しない状態を作る」ことが重要

この1行は、そのための現実解です。

Home
サービス
制作実績
デザイナー紹介
公式LINE
問合せ