0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WordPressの横スクロールを止める:原因を特定する実践チェックリスト

0
Posted at

WordPressサイトで「スマホやPCで少し横に動かさないと全体が見えない」という症状が出たとき、overflow-x: hidden だけで隠すと原因を残したままになります。この記事では、はみ出している要素を特定して根本修正する手順をまとめます。

1. まず原因要素を可視化する

ブラウザの開発者ツールで、ページ幅を超える要素を確認します。コンソールに次を入力します。

[...document.querySelectorAll('*')].filter((el) => {
  const rect = el.getBoundingClientRect();
  return rect.right > document.documentElement.clientWidth || rect.left < 0;
}).map((el) => ({
  tag: el.tagName,
  class: el.className,
  left: el.getBoundingClientRect().left,
  right: el.getBoundingClientRect().right
}));

一覧に出た要素を順番に確認します。スライダー、表、画像、固定幅のコンテナ、負のマージンが典型的な原因です。

2. 画像と動画を親幅に収める

img, video, iframe {
  max-width: 100%;
  height: auto;
}

WordPressの画像ブロックだけでなく、埋め込み動画や地図にも適用します。幅属性がHTMLに直接入っている場合でも、max-width で画面内に収められます。

3. 固定幅を見直す

width: 1200px のような指定は小さい画面ではみ出します。最大幅と可変幅を組み合わせます。

.content-container {
  width: min(100% - 32px, 1200px);
  margin-inline: auto;
}

これなら左右16pxの余白を保ちながら、広い画面では1200pxを上限にできます。

4. GridとFlexの最小幅を確認する

GridやFlexの子要素は内容によって縮まらないことがあります。

.grid-item,
.flex-item {
  min-width: 0;
}

.service-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
  gap: clamp(16px, 3vw, 32px);
}

特に長いURL、コード、表があるカードでは min-width: 0 が効きます。

5. 表とコードだけ横スクロールを許可する

ページ全体ではなく、必要な部分だけスクロールさせます。

.wp-block-table,
pre {
  max-width: 100%;
  overflow-x: auto;
}

6. 100vwの落とし穴

width: 100vw はスクロールバー幅を含むため、デスクトップでわずかにはみ出すことがあります。通常のセクションでは width: 100% を優先します。全幅表現が必要な場合は、テーマ側のレイアウトと負のマージンをセットで点検します。

7. 最後の安全策

根本原因を修正したうえで、保険として次を追加します。

html, body {
  max-width: 100%;
  overflow-x: clip;
}

clip に未対応の環境も考慮する場合は、フォールバックとして hidden を先に書きます。

確認する画面幅

  • 320px
  • 375px
  • 390px
  • 768px
  • 1024px
  • 1440px

ヘッダー、固定ボタン、スライダー、フォーム、表、フッターまで確認します。横スクロールはCSSだけでなく、JavaScriptが付与するインラインスタイルで発生することもあるため、操作後の状態もテストすると安心です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?