目次
- 【完全保存版】CSSが効かない原因と対処法まとめ|初心者がつまずくポイントを徹底解説
- CSSが効かないとはどういう状態か
- まず最初に確認すべきこと
- CSSファイルが読み込まれていない
- チェックポイント
- 確認方法
- セレクタの指定ミス
- HTML構造とセレクタが合っていない
- CSSの優先順位で負けている
- !importantの影響
- 対策
- CSSの記述ミス(文法エラー)
- 対策
- メディアクエリの条件ミス
- よくあるミス
- スマホだけCSSが効かない場合
- キャッシュが原因で反映されない
- 対策
- 他のCSSに上書きされている
- CSSが一部だけ効かないとき
- デベロッパーツールを使う
- 初心者向けチェックリスト
- よくある質問
- CSSが一瞬だけ効くのはなぜ?
- 毎回CSSが効かなくなるのはなぜ?
- まとめ
【完全保存版】CSSが効かない原因と対処法まとめ|初心者がつまずくポイントを徹底解説
Web制作を始めたばかりの頃、
ほぼ全員が一度は悩むのが「CSSが効かない問題」です。
- CSSを書いたのに見た目が変わらない
- さっきまで動いていたのに急に効かなくなった
- どこを直せばいいのか分からない
この記事では、「css 効かない」で検索した初心者の方に向けて、
CSSが効かなくなる原因と確認すべきポイントを順番に解説します。
上から順にチェックするだけで、ほとんどの問題は解決できます。
CSSが効かないとはどういう状態か
CSSが効かないとは、
スタイルを指定しているのにブラウザに反映されない状態を指します。
代表的な例は次のようなものです。
- 色やサイズが変わらない
- レイアウトが崩れたまま
- スマホだけ反映されない
原因は1つとは限らず、
複数の要因が重なっていることも多いのが特徴です。
まず最初に確認すべきこと
CSSが効かないときは、
必ず次の順番で確認するのがおすすめです。
- CSSファイルが読み込まれているか
- セレクタが正しいか
- 優先順位で負けていないか
- キャッシュの影響がないか
- メディアクエリの条件が合っているか
CSSファイルが読み込まれていない
最も多い原因がこれです。
<link rel="stylesheet" href="style.css">
チェックポイント
- パスは正しいか
- ファイル名のスペルは合っているか
- 全角文字が混ざっていないか
確認方法
body {
background: red;
}
一時的に背景色を変えて、
反映されるか確認しましょう。
セレクタの指定ミス
CSSは、
指定したセレクタに一致しないと一切効きません。
.title {
color: red;
}
<h1 class="titile">タイトル</h1>
このような クラス名の打ち間違い は非常によくあります。
HTML構造とセレクタが合っていない
.box p {
color: blue;
}
<p class="box">テキスト</p>
この場合、
.box の中に p が存在しないため、CSSは効きません。
CSSの優先順位で負けている
CSSには 優先順位(カスケード) があります。
p {
color: red;
}
.text {
color: blue;
}
<p class="text">テキスト</p>
この場合、
クラス指定の方が強いため青になります。
!importantの影響
p {
color: red !important;
}
この指定があると、
他のCSSは基本的に上書きできません。
対策
- できるだけ !important は使わない
- 使われている場合は削除または統一する
CSSの記述ミス(文法エラー)
.box {
color: red
background: blue;
}
セミコロンの抜けなどで、
以降のCSSが無視されることがあります。
対策
- セミコロンを必ず付ける
- 波括弧の閉じ忘れに注意
メディアクエリの条件ミス
@media (max-width: 768) {
body {
background: yellow;
}
}
正しくは:
@media (max-width: 768px) {
}
よくあるミス
- pxを付け忘れる
- min-width / max-width を勘違いする
スマホだけCSSが効かない場合
スマホで効かない場合は、
viewport設定を必ず確認しましょう。
<meta name="viewport" content="width=device-width, initial-scale=1.0">
これがないと、
メディアクエリが正しく動きません。
キャッシュが原因で反映されない
CSSは、
ブラウザにキャッシュされやすいファイルです。
対策
- スーパーリロード(Ctrl + F5)
- シークレットモードで確認
- ファイル名を変更する
<link rel="stylesheet" href="style.css?v=2">
他のCSSに上書きされている
body {
color: black;
}
.article p {
color: gray;
}
後から読み込まれたCSSや、
より具体的なセレクタが優先されます。
CSSが一部だけ効かないとき
- display: flex が効かない
- width が反映されない
この場合は、
親要素の影響を疑いましょう。
.parent {
display: flex;
}
.child {
width: 100%;
}
レイアウト指定は、
親子関係が非常に重要です。
デベロッパーツールを使う
Chromeなどの開発者ツールを使うと、
- CSSが当たっているか
- 打ち消されていないか
- どのCSSが有効か
を一目で確認できます。
CSSが効かないときは必須のツールです。
初心者向けチェックリスト
CSSが効かないときは、
次を順番に確認してください。
- CSSは読み込まれているか
- セレクタは正しいか
- 優先順位で負けていないか
- 文法エラーはないか
- キャッシュはクリアしたか
よくある質問
CSSが一瞬だけ効くのはなぜ?
- JavaScriptで上書きされている
- 読み込み順の問題
毎回CSSが効かなくなるのはなぜ?
- キャッシュの影響
- 共通CSSの設計ミス
まとめ
CSSが効かない原因は、
ほとんどが基本的な確認不足です。
- 読み込み
- セレクタ
- 優先順位
- キャッシュ
- メディアクエリ
「css 効かない」で検索した方は、
まず CSSが本当に読み込まれているか を確認してください。
そこから順番に見ていけば、必ず原因は見つかります。