给 el-button 写了背景色页面还是默认蓝色,Styles 面板里自己的规则被划掉,显示被 .el-button 的样式覆盖,控制台没有报错。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,scoped 编译后选择器权重低,加上样式加载顺序靠后,优先级别不过组件库自带规则,写了等于没写,还没法靠加个类名解决,只能换一种写法。
「组件库样式覆盖」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。
:deep(.el-button) { background: #1677ff; }
.page .el-button { background: #1677ff; }
权限不要一口气开到最大,先加到够用再往上试,范围小才好收。
具体做法是,用 :deep 穿透到子组件内部再写覆盖样式,别硬拼选择器;选择器前面加上页面级父类,把权重提上去,不要用 !important;主题色优先走组件库提供的 CSS 变量,升级时不容易坏。
最后用这个标准收尾,Elements 里自己写的规则生效且不再被划掉,换页面也不回退,样式顺序也正常。
