「教材を買ったけど挫折してしまった初学者」への再スタート支援をします。実務ベースで実装の“なぜ?”を解説し、現場目線でつまづきを一緒に解決しましょう!

スマホで崩れるレイアウト、その原因と設計のヒント

PCでは綺麗に表示されていたのに、スマホで見たらレイアウトがガタガタ…。
そんな経験、ありませんか?

「どこを直せばいいか分からない」
「スマホ用のCSSを書いたのに、うまくいかない」

この記事では、スマホで崩れるレイアウトの主な原因と、その設計のヒント
初心者の方にもわかりやすくお届けします。

CONTENTS

1. 横幅の指定が大きすぎる

スマホは画面が狭いため、大きすぎるwidth指定がはみ出しの原因になります。

.box {
  width: 800px;
}

スマホの画面幅はだいたい 375px〜430px 程度なので、
固定で大きな値を指定すると、はみ出したり、全体のバランスが崩れてしまいます。

✅ 解決方法
.box {
  width: 100%;
  max-width: 600px;
}

このように、親要素に合わせた%指定+上限をmax-widthで制限しておくと、
スマホでも無理なく収まるようになります。

2. marginやpaddingが広すぎる

余白の指定が大きすぎることで、要素同士が重なったり、画面外にはみ出すことがあります。

.section {
  padding: 100px 60px;
}

これをスマホでそのまま使うと、画面が窮屈になり、
思わぬ位置で改行されたり、意図しないズレが起きることも。

✅ 解決方法(メディアクエリで調整)
@media screen and (max-width: 768px) {
  .section {
    padding: 60px 20px;
  }
}

このように、親要素に合わせた%指定+上限をmax-widthで制限しておくと、
スマホでも無理なく収まるようになります。

max-widthの値は、コンテンツの種類にもよりますが、実務では600px前後が目安になることが多いです。

3. コンテンツが横並びのまま崩れる

PC向けに作った横並びレイアウトが、スマホで入りきらず崩れることもよくあります。

.flex-box {
  display: flex;
  gap: 20px;
}
<div class="flex-box">
  <div class="item">A</div>
  <div class="item">B</div>
  <div class="item">C</div>
</div>

このままだと、スマホでは3つ並ばず、はみ出す or 文字がつぶれることがあります。

✅ 解決方法(flex-wrapや縦並びへの切り替え)
@media screen and (max-width: 768px) {
  .flex-box {
    flex-direction: column;
  }
}

要素数が多い・内容が長い場合は、スマホでは縦並びに切り替える設計をしておくと安心です。

設計のヒント:スマホだけで調整しようとしない

「スマホの見た目が崩れているから」といって、
スマホ用のCSSだけで直そうとするのは、かえって混乱を招く原因になることもあります。

一度“全体の構造”を見直してみましょう

  • 横幅は「親に合わせる」 → width: 100%max-width
  • 余白は「可変余白」に切り替える → clamp()やメディアクエリ活用
  • レイアウトは「スマホ→PCの順で設計」 → モバイルファーストに切り替えるのもアリ

「スマホで崩れる」の多くは、スマホのせいではなく、
全体のレイアウトが「スマホにも対応していない構造」になっているだけなんです。

おわりに

スマホでのレイアウト崩れは、初心者が最も迷いやすいポイントのひとつ。
でも、それは「あなたのせい」ではなく、設計の順番と考え方がちょっとズレているだけです。

ひとつずつ原因を見つけて、設計のヒントと一緒に解決していきましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
CONTENTS