スマホで表示がおかしいときの確認手順
文字が極端に小さい、横に動く、はみ出す。スマホ特有の崩れには、原因の定番があります。上から順に確認すれば必ず見つかります。
パソコンでは問題ないのに、スマホで見ると崩れている。よくある話ですが、原因はだいたい決まっています。順番に潰していきましょう。
1. まず viewport の1行を確認する
全体が極端に縮小されて、文字が読めないほど小さい。この症状なら、ほぼ確実にこの1行が抜けています。
<meta name="viewport" content="width=device-width, initial-scale=1" />この指定が無いと、スマホは「パソコン向けのページだろう」と判断し、幅980px程度で描画してから画面に縮小して収めます。結果、全体が小さくなります。まずここを見てください。
2. 横スクロールが出る原因を探す
画面より広い要素がどこかに1つあります。犯人の候補は決まっています。
- 幅を px で固定している要素(width: 800px など)
- width: 100% に padding や border を足している
- 画像に max-width: 100% を指定していない
- 長いURLや英単語が改行されずにはみ出している
- 100vw を使っている(スクロールバーのぶん超えることがある)
犯人を見つける手っ取り早い方法があります。検証ツールで次のCSSを一時的に足すと、すべての要素に枠線が出ます。画面からはみ出している箱が一目で分かります。
* { outline: 1px solid red; }3. 長い文字列を折り返す
URLや長い英単語は、途中で改行されずにそのまま伸びます。日本語は自動で折り返されるので気づきにくいところです。
上は枠からはみ出します。overflow-wrap: anywhere を消したり付けたりして比べてみてください。
4. 文字が小さすぎないか
スマホでの本文は16px相当を下回らないようにしてください。それより小さいと読みづらいだけでなく、入力欄では画面が勝手に拡大される挙動が起きることがあります。
5. 押せる範囲が狭すぎないか
指でタップする以上、リンクやボタンは小さすぎると押せません。おおよそ44px四方を目安に、余白を含めて確保します。文字だけのリンクが並んでいるときは、上下に padding を足すと押しやすくなります。
6. 実機でも見る
検証ツールのスマホ表示は便利ですが、完全に同じではありません。特に、固定ヘッダーとアドレスバーの重なり、フォントの見え方、タップの感触は実機でしか分かりません。同じネットワークにつなげば、スマホから開発中のページを開けます。仕上げの前に一度は見てください。
確認の順番まとめ
- viewport の1行があるか
- はみ出している要素はどれか(全要素に枠線を出して探す)
- 長い文字列が折り返されているか
- 文字とタップ範囲は十分か