CreaTools LogoCreaTools
Tips

CSSが効かない原因、9割はこの3つ

2025-09-15

結論:9割はこの3つ

  1. キャッシュ → スーパーリロードで解決
  2. 詳細度負け → DevToolsで打ち消し線を確認
  3. クラス名のtypo → HTMLからコピペして検索

この順番で確認すれば、ほぼ特定できる。


まず試す:スーパーリロード

OS操作
WindowsCtrl + Shift + R
MacCmd + Shift + R

**これで直ったらキャッシュが原因。**終了。

本番環境でキャッシュが残る場合は、CSSファイル名に?v=2を付ける。


次に確認:DevToolsで打ち消し線

  1. 対象要素を右クリック →「検証」
  2. Stylesパネルを見る
  3. 打ち消し線があるルールを探す

打ち消し線 = 「他のルールに負けている」

詳細度の早見表

セレクタ強さ
p弱い
.class
#id強い
style=""最強

同じ強さなら、後に書いた方が勝つ。

負けていた場合の対処

/* 負けている */
.button { color: red; }

/* 勝っているセレクタを確認して、それより強くする */
.container .button { color: red; }

**!importantは最終手段。**乱用するとどこも上書きできなくなる。


それでも効かない:typoを疑う

HTMLからクラス名をコピー → CSSファイル内で検索(Ctrl+F)。

ヒットしなければtypo確定。

よくあるtypo

書いた正解
.hedaer.header
.buton.button
.contanier.container

1文字違いは目視で見つけにくい。必ずコピペ検索する。


私がやらかした失敗

「なぜか効かない」と30分悩んだ結果、原因は全角スペースだった。

/* 全角スペースが入っていた */
.button {
 color: red;  /* ←ここ */
}

エディタによっては見た目で区別できない。疑わしいときは行を消して打ち直す。


!importantを使っていい場面

場面判断
Bootstrap等を上書きしたい✓ 使ってよい
自分のCSSで負けている✗ 詳細度を調整
原因不明✗ 原因を特定する

外部ライブラリの上書きだけ。自分のCSSに!importantを連発するのは設計の敗北。


チェックリスト

□ スーパーリロードした?
□ DevToolsで打ち消し線を確認した?
□ クラス名をコピペ検索した?
□ 全角スペースが混入していない?

この4つで解決しないケースは稀。


まとめ

  • 9割は「キャッシュ」「詳細度」「typo」
  • スーパーリロードを最初に試す
  • 打ち消し線があれば詳細度負け
  • クラス名は目視せずコピペ検索
  • !importantは外部CSS上書き時のみ