@import 必须顶格写在文件首行、用相对路径(以./或../开头)、末尾加分号,且仅支持第一层引入;推荐统一在app.wxss中集中导入公共样式以避免重复和冲突。

@import 在小程序里不是“写了就能用”,写错位置、路径或格式,样式会静默失效——连错误提示都没有。
为什么 @import 写了但样式没生效
常见现象是:公共类(如 .btn-primary)在页面中完全不生效,开发者工具「样式」面板里找不到对应规则,网络面板也看不到请求,控制台空空如也。
-
@import必须严格顶格写在文件第一行,前面不能有任何字符:包括 BOM、空格、制表符、/* 注释 */、甚至空行 - 路径必须是相对路径,且以
./或../开头;写成@import "/common/base.wxss"或@import "common/base.wxss"都会静默失败 - 末尾分号
;不可省略,漏了整行被跳过 - 被引入的
.wxss文件里如果再写@import,第二层及以后的内容不会被加载(小程序只解析第一层)
怎么写才对:路径和位置的实操要点
假设项目结构为:app.wxss 在根目录,公共样式放在 common/base.wxss,当前页面样式在 pages/index/index.wxss:
- 在
pages/index/index.wxss中应写:@import "../../common/base.wxss";(从当前文件出发,向上两级到根,再进common/) - 在
app.wxss中应写:@import "common/base.wxss";(同级目录,不用../) - 路径区分大小写,
Base.wxss和base.wxss在 iOS 真机上可能表现不同 - 用 VS Code 可开启
editor.renderWhitespace: "all",一眼识别隐藏空格或 BOM
更稳妥的做法:统一由 app.wxss 引入
把所有复用样式集中管理,避免页面各自引入导致重复、权重冲突或遗漏。
- 把
common/utils.wxss、common/variables.wxss等全部在app.wxss顶部一次性@import - 不要在多个页面 wxss 里重复
@import同一文件,否则样式会被多次拼接注入,可能因层叠顺序覆盖预期效果 - 全局工具类(如
.flex-center)、颜色变量(--primary-color)、重置规则适合放这里;但泛命名(如.text)要小心污染子组件 - 第三方库如
weui-wxss,需确认构建后真实路径(如miniprogram_npm/weui-miniprogram/weui-wxss/dist/style/weui.wxss),再写进app.wxss
最易被忽略的一点:@import 是纯文本拼接,不带作用域、不解析依赖、不报错——它只认位置、路径、分号。调试时别只看代码有没有红标,得去「网络」面板确认 .wxss 请求是否返回 200,再进「样式」面板查规则是否真出现在 computed 样式里。











