レスポンシブサイトで要素が画面に収まらない主な原因4つと解決策のまとめ
  • レスポンシブサイトで要素が画面に収まらない主な原因4つと解決策のまとめ
  • 記事公開:2017/07/21
  • 最終更新:2017/11/14

レスポンシブサイトで要素が画面に収まらない主な原因4つと解決策のまとめ

レスポンシブサイトで要素が画面に収まらない主な原因4つと解決策をまとめてみました。レスポンシブサイトの制作時には頭を悩ませる問題かと思います。現に悩まれている方、このコンテンツで頭痛の種を取り除いてください。

この記事は約 6 分で読めます。

スマホサイトで要素が画面に収まらない問題

レスポンシブサイトを構築していると、スマホサイトで要素が画面に収まらないという問題に一度や二度はぶつかるものです。私も、制作の過程で必ず1回はスマホの画面に要素が収まらず、横スクロールが表示されてしまい、毎回閉口していました。

以前は、どこが原因で要素が画面に収まらないのかすぐに分からず、問題を解決するまでに長い時間を費やしたものです。そんな経験を何度もしているうち、今ではすぐに原因の箇所を突き止め、修正できる様になりました。

今回は、スマホサイトで要素が画面に収まらない主な原因と解決策をまとめてみました。
以下の内容を読めば、きっとあなたのサイトも要素が画面に収まるようになります!

原因1:要素の幅がデバイスの幅を超えている

解決策:スマホ表示の場合、要素の幅をpxではなく%で指定するようにする。

要素の幅がデバイスの幅を超える値になっている時、当然ですが要素は画面内に収まりません。

例えば、デバイスの横幅が【480px】、要素の横幅が【500px】であれば、オーバーしている【20px】だけ要素が画面からはみ出してしまいます。つまり、要素が画面に収まらなくなるわけです。

この解決策は、要素の横幅がデバイスの横幅を超えないようにすること。
具体的には、横幅の値を【px】で指定するのではなく【%】で指定してやることです。
そうしてやれば、要素の横幅がデバイスの横幅を超えることはありません。

原因2:margin、padding、borderが考慮されていない

解決策:要素のCSSに【box-sizing: border-box;】を加えてやる。

例えば、要素の横幅を【width:100%】と指定している場合で、その要素にmargin、padding、border(要素の横に対して)が設定されていると、その数値の分だけ画面からはみ出してしまいます。

例えば、margin-rightが10px、padding-rightが10px、border-rightが10pxだとした場合、3つの合計である30pxだけ画面から要素がはみ出すことになります。

【width:100%】と指定した場合でも、margin、padding、borderの値は【width:100%】に含まれませんので、要素が画面に収まらなくなるわけです。

この解決策としては、該当する要素に【box-sizing: border-box;】を加えてやることです。
これを加えることで、margin、padding、borderの値を含めて【width:100%】にすることができます。

原因3:画像のサイズがデバイスの横幅を超えている

解決策:画像タグに対してmax-widthを100%で指定してやる。

【原因1:要素の幅がデバイスの幅を超えている】と同じですね。
画像の横幅がデバイスの横幅を超えていると、その超えている分だけ画面からはみ出します。

この解決策は、PCとスマホで画像を切り替える、画像タグに対してwidthを100%で指定してやる、などいくつかの解決策が考えられますが、今回は【画像タグに対してmax-widthを100%で指定してやる】をお勧めいたします。

例えば、スマホ表示の画像タグに対して以下の様なCSSを設定してやります。

img{
max-width: 100%;
height: auto;
width /***/:auto; 
}

このCSSを設定してやると、画像がデバイスの横幅より大きい場合、デバイスの横幅に合わせて縮小されます。画像がデバイスの横幅より小さい場合は、元のサイズで表示されます。

こうしてやれば、画像のサイズが原因で【素が画面に収まらない】を回避することができます。

原因4:英文字やURLが改行されていない

解決策:要素のCSSに【word-wrap:break-word】を加えてやる。

ページ内に長い英文字やURLなどを記載していると、それらが改行されず、画面外にはみ出している場合があります。これが原因で、要素が画面に収まらないのです。

解決策としては、改行されていない英文字やURLの要素に対して、CSSで【word-wrap:break-word】を設定してやりましょう。これを設定する事で、長い英文字やURLが画面に収まるように改行されます。

まとめ

スマホサイトで要素が画面に収まらない主な原因4つと解決策をまとめてみました。

レスポンシブサイトの制作などで、頭を悩ませる問題かと思います。
今回紹介した原因と解決策を知るだけでも、問題解決に役立つかと思います。

ぜひ、参考にしてください。

この記事が気に入ったら【いいね】しよう!

あなたのWEBサイトをWordpressで
管理できるようにしませんか?

あなたのWEBサイトを見た目そのままでWordpress化いたします。
以下に興味のある方は、お気軽にご相談下さい。

  • あなたのWEBサイトを、Wordpressで運営できる様にいたします。ページの編集や追加も簡単に行えるようになります。
  • どの様な形式のサイト(例えば、アメブロ、MTサイトなど)でもWordPress化いたします。
  • Wordpress化でサイトのデザインが崩れるなどの心配は必要ありません。デザインもサイト構成もほぼ変わらない、高い再現率が自慢です。
  • 単にWordpress化するだけではありません。デザイン変更など+αの作業にも対応することも可能です。
  • 他案件との兼ね合いもありますが、最短即日であなたのサイトをWordpress化いたします。
  • 初心者でもWordpressが使えるよう、納品後に徹底的な操作サポートをご提供いたします。Wordpress化したけど操作できないと、あなたが頭を抱えることはありません。

興味のある方は、以下のリンクからチェックしてみてください。

詳細を確認する

著者:とあるWEBディレクター

岡山在住のWebディレクターです。Wordpressを使ったWEBサイト制作を中心に7年間ほど活動させていただいています。

Wordpress関連の記事でお役に立てれば幸いです。

【関連記事】あなたが興味のありそうな関連記事をご紹介します。

  • 2015-06-05

    CSSで正円形を描く方法【コピペで簡単】

    CSSで正円形を描く機会がありましたので、その方法を備忘録としてまとめておきます。基本的にコピペだけで実装可能。サイズや背景色を任意に変更するだけでOKです。参考にしてください。 記事を読む

  • 2016-04-04

    画像加工はもう不要!CSSだけで画像を円形にする方法

    CSSだけで画像を円形にする方法をご紹介します。この方法を知っていれば、画像を個別に加工する必要はなくなります。スタイリッシュな円形画像をサイトデザインに取り入れたい方、ぜひ参考にしてください。それでは、CSSだけで画像を円形にする方法をどうぞ! 記事を読む

  • 2015-12-31

    画像が読み込めなかった時に別の画像を表示させる方法

    画像が読み込めなかった時に別の画像を表示させる方法をご紹介します。画像が読み込めない時、altのテキストではなく別の画像を表示させたい方は必読です。3分後には実装可能です。 記事を読む

  • 2017-07-22

    display:inline-blockで思う様に横並びにならない理由と解決方法

    display: inline-blockで要素を横並びにしたいのに、思う様に横並びにならないことってありませんか?実はHTMLの記述方法が原因で横並びにならないことがあるのです。原因と解決方法を詳しく解説してみました。 記事を読む

  • 2016-02-15

    GOOGLEマップをレスポンシブに対応させる方法

    GOOGLEマップをレスポンシブに対応させる方法をご紹介します。GOOGLEマップは埋め込みコードを設置しただけはレスポンシブに対応していません。この記事を読めば3分でGOOGLEマップをレスポンシブに対応させることができます。 記事を読む

コメントを残す


(必須)

CAPTCHA