Web制作をしていると、「CSSを書いたのに反映されない」「なぜか一部だけ効かない」という場面に必ず遭遇します。
このとき闇雲にコードをいじると、逆に沼にハマってしまうことも多いです。
この記事では、CSSが効かない時に 最短で原因を見つけるための対処法 を、よくある順にまとめます。
まず結論:CSSが効かない原因はだいたい4つ
CSSが効かない理由は、多くの場合このどれかです。
CSSファイルが読み込まれていない
セレクタ(指定)が間違っている
優先順位(上書き)で負けている
そもそも別の要因で見え方が変わっている
ここから1つずつ潰していきます。
1. CSSファイルが読み込まれているか確認する
まず最優先で疑うべきはここです。
そもそもCSSファイルが読み込まれていないと、どれだけ書いても絶対に反映されません。
確認方法は以下です。
HTMLのlinkタグが正しいか
CSSファイルのパス(場所)が合っているか
ファイル名が間違っていないか(スペルミス)
拡張子が.cssになっているか
特にありがちなのが、フォルダ名やファイル名の打ち間違いです。
2. いったん「強制で効かせるCSS」を入れてみる
原因を探すとき、まずは「効くか効かないか」をはっきりさせるのが大事です。
そこでおすすめなのが、適当な要素に対して目立つCSSを入れてみる方法です。
3. セレクタ(指定)が合っているか確認する
CSSは「どの要素に効かせるか」を正しく指定できていないと反映されません。
ここでよくあるミスは以下です。
クラス名のスペルミス
HTML側にクラスが付いていない
ドットを付け忘れている(クラスなのにタグ扱いしている)
#を付け忘れている(idなのにクラス扱いしている)
4. ブラウザの検証ツールで「その要素に当たってるか」見る
CSSが効かない時に一番役立つのが、Chromeの検証ツールです。
検証ツールで見たいポイントは2つです。
そのCSSが「当たっているか」
当たっているけど「上書きされているか」
もしCSSが当たっていれば、スタイル一覧に表示されます。
逆に 表示されないならセレクタが間違っている可能性が高いです。
5. 優先順位(上書き)で負けていないか確認する
CSSは後から書かれたものや、より強い指定が勝ちます。
そのため、自分のCSSが正しくても「別のCSSに負けている」ことがよくあります。
よくある負けパターンは以下です。
もっと強いセレクタが存在している
同じ要素に別のCSSが後から書かれている
!importantが使われている
検証ツールで取り消し線が付いている場合は、上書きされている状態です。
6. !importantは最終手段として使う
どうしても効かせたい時に!importantを付ければ勝てる場合があります。
ただしこれは、便利な反面 後で管理が地獄になる原因にもなります。
最初は
優先順位の仕組みを理解して修正する
という方が確実にスキルも伸びます。
7. キャッシュのせいで反映されていないことがある
CSSを書き換えたのに反映されない時、意外と多いのがキャッシュ問題です。
対処法は以下です。
ブラウザをスーパーリロードする
シークレットモードで開く
ページを強制更新する
これだけで一瞬で解決することもあります。
8. そもそもCSSが効いているのに「見えない」パターンもある
CSSは当たっているのに、見た目が変わらないケースもあります。
例えば
display: none;で非表示になっている
opacity: 0;で透明になっている
positionやz-indexで裏に隠れている
heightがなくて表示領域がない
このあたりは、レイアウト系のトラブルでかなり多いです。
9. メディアクエリ(レスポンシブ)の範囲に入っているか確認する
スマホ・タブレット用のCSSを書いている時は、メディアクエリの条件に注意が必要です。
10. 最短で解決するおすすめ手順
最後に、CSSが効かない時のおすすめの解決ルートをまとめます。
CSSファイルが読み込まれているか確認
目立つCSSを書いて反映チェック
セレクタが合っているか確認
検証ツールで当たってるか見る
上書きされてないか確認
キャッシュを疑う
レイアウトや非表示設定を疑う
メディアクエリの範囲を疑う
この順番でやれば、かなりの確率で解決できます。
まとめ:CSSが効かない時は「焦らず原因を切り分ける」
CSSが効かない時に大事なのは、感覚で直そうとせずに
「どこが原因か」を順番に切り分けることです。
特に検証ツールを使えるようになると、CSSトラブルは一気に解決しやすくなります。
CSSが効かずに詰まった時は、この記事のチェックリスト通りに確認してみてください。