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,减少手写选择器