Tips
CSSが効かない原因、9割はこの3つ
2025-09-15
結論:9割はこの3つ
- キャッシュ → スーパーリロードで解決
- 詳細度負け → DevToolsで打ち消し線を確認
- クラス名のtypo → HTMLからコピペして検索
この順番で確認すれば、ほぼ特定できる。
まず試す:スーパーリロード
| OS | 操作 |
|---|---|
| Windows | Ctrl + Shift + R |
| Mac | Cmd + Shift + R |
**これで直ったらキャッシュが原因。**終了。
本番環境でキャッシュが残る場合は、CSSファイル名に?v=2を付ける。
次に確認:DevToolsで打ち消し線
- 対象要素を右クリック →「検証」
- Stylesパネルを見る
- 打ち消し線があるルールを探す
打ち消し線 = 「他のルールに負けている」
詳細度の早見表
| セレクタ | 強さ |
|---|---|
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上書き時のみ