Skip to content

CSS 选择器不匹配

快速摘要

你写的 CSS 选择器没有选中任何元素,或被优先级更高的规则覆盖了,导致样式不生效。

为什么发生

  • 选择器写错,如类名拼写不一致、用了 .btn 但 HTML 里是 button

  • 被优先级更高的其他规则覆盖,如内联样式或 !important

  • 样式表没有正确引入,或引入顺序导致被后面覆盖

  • 元素是动态生成的,写选择器时它还不存在

最小示例

✗ 错误代码
.btn-primary { color: white; }
✓ 修复代码
button.btn-primary { color: white; }

如果 HTML 里是 <button class="btn-primary">,而页面其他地方也有 .btn-primary 类,可能被覆盖。加上 button 提高优先级即可。

如何诊断

  • 在浏览器开发者工具中选中目标元素,查看 Elements 面板的 Styles 栏

  • 看你的规则是否出现在列表里;如果被划掉,说明被更高优先级覆盖

  • 检查 HTML 中元素的 class/id 与 CSS 选择器是否一致

如何修复

  • 修正选择器拼写,与 HTML 中的 class/id 完全一致

  • 提高选择器优先级,或去掉冲突规则上的 !important

  • 确保样式表在 HTML 中被正确引入

如何预防

  • 使用 BEM、CSS Modules 等命名约定,避免选择器冲突

  • 用 Tailwind 等原子化 CSS,减少手写选择器

相关资源

相关术语

相关课程

相关练习

← 返回语言