SCSS样式覆盖问题求助:自定义样式无法覆盖公共样式
移除重复的@import语句
你当前在editorial/scss/_post-box.scss中重复导入了common/scss/post-box,而app.scss里已经提前导入过该文件,这会导致编译后的CSS中common的样式被重复输出,打乱预期的样式优先级顺序。直接删除editorial/scss/_post-box.scss里的@import "common/scss/post-box";语句。验证编译后的CSS顺序
检查最终生成的CSS文件,确保editorial/scss/post-box.scss中的样式代码位于common/scss/post-box.scss所有样式的后面。如果顺序不符合预期,排查app.scss的导入路径是否正确(比如确认@import "post-box";确实指向common目录下的文件)。匹配或提升选择器优先级(不新增类/ID)
如果common的选择器优先级更高(比如嵌套层级更多,如.content .post-box),你需要在editorial的样式中使用完全相同的选择器结构,靠编译顺序靠后的特性实现覆盖。如果选择器完全一致但仍被覆盖,可通过重复现有类名的方式提升权重(比如把.post-box写成.post-box.post-box),这种方式没有添加新的类/ID,只是利用现有类的重复选择提高优先级,符合要求。对齐选择器嵌套层级
确保editorial中的选择器嵌套层级和common的一致,避免出现嵌套更少的情况(比如common用.page .post-box,你却只用.post-box),否则优先级会低于前者。
内容的提问来源于stack exchange,提问作者Louise Chan

