「スマホで見てもPCのデザインのままで表示されてしまう…」
「CSSでメディアクエリを書いたのに、なぜか反映されない…」
ECサイトやコーポレートサイトを運営していて、このような表示崩れに悩まされていませんか?
昨今のEC市場において、スマホ経由の売上シェアは7割以上と言われています。レスポンシブデザインの不具合は、単なる「見た目の問題」ではなく、「深刻な機会損失(売上ダウン)」に直結します。
この記事では、Webディレクター歴17年の私が、現場でよく遭遇する「レスポンシブが効かない原因」と、その解決策を解説します。
原因1:viewport(ビューポート)の記述漏れ
レスポンシブデザインが表示されないのは、viewportの記述は入っていますか?viewport(ビューポート)とは、ブラウザに「スマホの画面幅に合わせて表示」と指示する命令タグです。これがないと、スマホは「PCサイトを無理やり縮小して表示」してしまいます。
HTMLファイルの<head>~</head>の中に、以下のコードが入っているか確認してください。なければコピペして追加しましょう。
<meta name="viewport" content="width=device-width, initial-scale=1.0">
これを入れるだけで、大半の表示崩れは解決します。
原因2:メディアクエリ(@media)の書き間違い
「viewportはあるのにCSSが効かない」場合、メディアクエリの記述ミスを疑いましょう。
よくあるミス①:全角スペース・全角文字
コードの中に「全角スペース」が混じっていませんか? CSSは半角英数字がルールです。特にカッコ { } の前後や、コロン : の後ろに全角スペースが入っていると、その行は無視されます。
よくあるミス②:閉じカッコの不足
メディアクエリはカッコの中にさらにカッコを書く「入れ子構造」になります。
/* 失敗例:最後のカッコが足りない */
@media screen and (max-width: 767px) {
.title {
font-size: 16px;
}
/* 正しい書き方 */
@media screen and (max-width: 767px) {
.title {
font-size: 16px;
}
}
よくあるミス③:記述順序(上書きのルール)
CSSは「下に書いたものが優先される」という鉄則があります。 PC用の記述の下に、スマホ用の記述を書いていますか?
/* 良い例 */
p { font-size: 16px; } /* PC(基本) */
@media screen and (max-width: 767px) {
p { font-size: 14px; } /* スマホ(上書き) */
}
原因3:CSSの優先順位(詳細度)で負けている
「記述は合っているはずなのに、色が変らない…」 その場合、他のCSS(PC用の指定や、WordPressテーマの初期設定)の方が「優先順位が高い」可能性があります。
CSSには「ID id="" はクラス class="" よりも強い」といった強さのランクがあります。
解決策
一時的な確認として、値の後ろに !important をつけてみてください。
@media screen and (max-width: 767px) {
.title {
color: #990000 !important; /* 強制的に適用 */
}
}
これで反映されるなら、原因は「優先順位負け」です。
※ただし、!important の多用は後の修正を困難にするため、本番ではなるべくセレクタを強くする(例:div.content .title と書く)修正をお勧めします。
原因4:ブラウザのキャッシュ(Cache)
「コードを修正してアップロードしたのに、画面が全く変わらない!」
これは初心者あるあるですが、実は「修正は成功しているが、自分のスマホが古いデータを記憶(キャッシュ)しているだけ」というパターンです。
解決策
①シークレットモード(プライベートブラウズ)で見る
キャッシュの影響を受けずに確認できます。
②スーパーリロード
PCなら Ctrl + F5 (Macは Cmd + Shift + R)を押すと、最新のcssを読み込みます。
それでも直らない時は?プロのデバッグ方法
プロの現場では、「検証ツール(デベロッパーツール)」を使います。
- Google Chromeでサイトを開く
- 右クリックして「検証」を選択(またはF12キー)
- スマホアイコンをクリック(Toggle device toolbar)
これで、擬似的にiPhoneやAndroidでの表示を確認しながら、「どのCSSが効いていて、どのCSSが打ち消されているか」をリアルタイムで診断できます。
Gemini said
年商1000万を目指すWebマーケター(Rayさん)として、**Site C(EC事業用ポートフォリオサイト)**に掲載するための記事原稿を作成しました。
ターゲットは「自社サイトの崩れに困っている企業のWeb担当者・経営者」です。 **「技術的なトラブルを即座に解決できる=この人に任せれば安心だ」**という信頼(Authority)を獲得し、最終的に問い合わせ(CV)へ繋げる構成にしています。
そのままコピペして使えますが、[ ]の部分はご自身のサイトに合わせて調整してください。
【CSS】レスポンシブが効かない!5つの原因と解決策をプロが解説
「スマホで見てもPCのデザインのままで表示されてしまう…」 「CSSでメディアクエリを書いたのに、なぜか反映されない…」
ECサイトやコーポレートサイトを運営していて、このような表示崩れに悩まされていませんか?
昨今のEC市場において、スマホ経由の売上シェアは7割以上と言われています。レスポンシブデザインの不具合は、単なる「見た目の問題」ではなく、**「深刻な機会損失(売上ダウン)」**に直結します。
この記事では、Webディレクター歴17年の私が、現場でよく遭遇する**「レスポンシブが効かない原因ワースト5」**と、その解決策を解説します。
原因1:viewport(ビューポート)の記述漏れ
スマホ表示がうまくいかない原因のNo.1がこれです。 CSSが間違っているのではなく、HTML側に「スマホで見る準備」がされていないケースです。
viewport(ビューポート)とは、ブラウザに「このページはスマホの画面幅に合わせて表示してね」と指示する命令タグです。これがないと、スマホは「PCサイトを無理やり縮小して表示」してしまいます。
解決策
HTMLファイルの<head>~</head>の中に、以下のコードが入っているか確認してください。なければコピペして追加しましょう。
HTML
<meta name="viewport" content="width=device-width, initial-scale=1.0">
これを入れるだけで、大半の表示崩れは解決します。
原因2:メディアクエリ(@media)の書き間違い
「viewportはあるのにCSSが効かない」場合、メディアクエリの記述ミスを疑いましょう。
よくあるミス①:全角スペース・全角文字
コードの中に「全角スペース」が混じっていませんか? CSSは半角英数字がルールです。特にカッコ { } の前後や、コロン : の後ろに全角スペースが入っていると、その行は無視されます。
よくあるミス②:閉じカッコの不足
メディアクエリはカッコの中にさらにカッコを書く「入れ子構造」になります。
CSS
/* ダメな例:最後のカッコが足りない */
@media screen and (max-width: 767px) {
.title {
font-size: 16px;
}
/* ここに閉じカッコ } が必要! */
よくあるミス③:記述順序(上書きのルール)
CSSは**「下に書いたものが優先される」**という鉄則があります。 PC用の記述の下に、スマホ用の記述を書いていますか?
CSS
/* 良い例 */
p { font-size: 16px; } /* PC(基本) */
@media screen and (max-width: 767px) {
p { font-size: 14px; } /* スマホ(上書き) */
}
原因3:CSSの優先順位(詳細度)で負けている
「記述は合っているはずなのに、色が変らない…」 その場合、他のCSS(PC用の指定や、WordPressテーマの初期設定)の方が**「優先順位が高い」**可能性があります。
CSSには「ID id="" はクラス class="" よりも強い」といった強さのランクがあります。
解決策
一時的な確認として、値の後ろに !important をつけてみてください。
CSS
@media screen and (max-width: 767px) {
.title {
color: red !important; /* 強制的に適用 */
}
}
これで反映されるなら、原因は「優先順位負け」です。 ※ただし、!important の多用は後の修正を困難にするため、本番ではなるべくセレクタを強くする(例:div.content .title と書く)修正をお勧めします。
原因4:ブラウザのキャッシュ(Cache)
「コードを修正してアップロードしたのに、画面が全く変わらない!」 これは初心者あるあるですが、実は**「修正は成功しているが、自分のスマホが古いデータを記憶(キャッシュ)しているだけ」**というパターンです。
解決策
- シークレットモード(プライベートブラウズ)で見る: キャッシュの影響を受けずに確認できます。
- スーパーリロード: PCなら
Ctrl + F5(MacはCmd + Shift + R)を押します。
それでも直らない時は?プロのデバッグ方法
プロの現場では、勘で修正するのではなく**「検証ツール(デベロッパーツール)」**を使います。
- Google Chromeでサイトを開く
- 右クリックして「検証」を選択(またはF12キー)
- スマホアイコンをクリック(Toggle device toolbar)
これで、擬似的にiPhoneやAndroidでの表示を確認しながら、**「どのCSSが効いていて、どのCSSが打ち消されているか」**をリアルタイムで診断できます。
まとめ ECサイトの表示崩れは「機会損失」です
レスポンシブデザインが効かない主な原因は以下の5つでした。
- viewportの記述漏れ
- メディアクエリの記述ミス(全角・カッコ)
- 記述順序の間違い
- 詳細度(優先順位)負け
- ブラウザのキャッシュ
ご自身で修正できそうでしょうか?もし、「やってみたけれど直らない」「他の業務が忙しくて修正に時間をかけられない」という場合は、ぜひ一度ご相談ください。
私のECディレクション・サポートでは、こうした技術的なトラブルシューティングから、スマホでの購入率(CVR)を最大化するUI設計まで、一気通貫でサポート可能です。
「サイトの見た目」を整えることは、お客様への「おもてなし」です。 プロの技術で、あなたのサイトを「売れる店舗」に整えませんか?

