レスポンシブ編 04 / 10 実践 約6分

横スクロールが出る原因と直し方

スマホで横に動いてしまう症状の原因を5つに分類し、上から順に潰していく手順を解説します。レスポンシブ対応で最初に直すべき不具合です。

この教材で学べること

  • 横スクロールが起きる5つの原因
  • 犯人を特定する探し方の順番
  • 原因別の直し方

スマホで画面が横に動いてしまう——レスポンシブ対応で最初に直すべき不具合です。原因は必ず「画面幅より大きい要素が、どこかに1つある」ことです。感覚で直そうとせず、犯人を特定してください。

5つの原因

原因起きている状態直し方
幅が固定の要素320pxなど数値指定のまま可変(親に合わせる)に変える
横並びが解除されていない3枚のカードが横に並んだままスマホ幅で縦積みに変える
画像が大きい画像の幅指定が画面より大きい幅を可変にする
長い英数字・URL途中で折り返されず1行のまま伸びる折り返しの設定を入れる
左右の余白の足し算幅100%+左右余白で画面を超える外側ではなく内側の余白にする

頻度としては上2つで大半を占めます。まずここから疑ってください。

犯人の探し方

画面幅を超える要素が横スクロールを生む仕組みの図 スマホの画面幅 収まっている 幅が固定のボックス 収まっている ← ここがはみ出している この1つだけで、 ページ全体が横に動く 探す順番 1. レイヤーを上から順に選ぶ 2. 幅が「固定」の要素を探す 3. 見つけたら可変に変える
図1:はみ出す要素が1つあるだけで、ページ全体が横に動く

探すときは、セクション単位で上から順に非表示にしていく方法も有効です。非表示にした瞬間に横スクロールが消えたら、その中に犯人がいます。範囲を半分ずつ絞ると数分で特定できます。

原因別の直し方

症状確認する場所変更内容
特定のセクションだけ横に動くそのセクション内の幅指定固定 → 可変
全ページで少しだけ動くヘッダー・フッターロゴやメニューの固定幅を見直す
画像のある箇所で動く画像の幅・最小幅幅を可変、最小幅の指定を外す
文章の箇所で動くURLや英字の長い文字列折り返しを許可する
実機で確認する:ブラウザの幅を狭めるだけでは、スマホ特有の挙動を再現しきれないことがあります。公開前に必ず実機で開いて、指で横に動かないかを確かめてください。

次は横並びを縦積みに変えるです。

まずは1ヶ月間参加してみるplay_arrow