SCSS编译器不控制单条规则内CSS属性顺序,该顺序由lint工具如property-sort-order规则管理;需在.sass-lint.yml中启用并指定concentric-css预设,否则手写顺序易被格式化工具打乱。
SCSS 编译后 CSS 属性顺序混乱,不是编译器 bug,而是你没用对 lint 规则——才是真正管排序的,但默认不启用,且必须配预设。
为什么改了 SCSS 顺序却没影响最终 CSS 属性位置
SCSS 编译器(Dart Sass)本身不负责 CSS 属性在单条规则内的排列顺序;它只保证选择器、嵌套结构和
的语义正确性。属性顺序完全由后续工具(如 PostCSS、stylelint 或构建时的 CSS 压缩器)控制,或者干脆就是你手写的顺序——而手写顺序在团队协作中极易被格式化工具打乱。
常见错误现象:
被自动改成
在前,但你希望语义分组(布局类在前、视觉类在后);VS Code 保存后没反应,或 CI 报
却不知从哪改起。
规则不会自动生效,必须显式启用并指定排序策略
手写顺序 ≠ 最终顺序:Prettier、stylelint 自动修复、甚至某些编辑器的“格式化 CSS”功能都会重排
该规则对嵌套选择器也生效,比如
同样要排序
如何用 sass-lint 正确启用 property-sort-order
注意:这里说的
是 Ruby 版(
),不是 Node.js 的
。如果你项目里用的是
+
,请跳过本节——它们配置方式完全不同。
立即学习
“
前端免费学习笔记(深入)
”;
使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
下载
关键点:Ruby 版
的
规则依赖内置排序表,不支持自定义数组,只接受预设名。
在
中启用规则:
是唯一推荐的预设,按「布局 → 盒模型 → 边距 → 尺寸 → 文本 → 视觉」分组,社区共识度高
不要写
—— 这个字段不接受数组,会静默失效
若升级
到 v0.60+,旧版预设可能不兼容,需同步更新配置
VS Code 里规则不触发?检查这三处断点
最常发生的不是规则写错,而是链路没接通。
VS Code 插件是否绑定了
语言模式?在设置里搜
,确认
文件名是否带点、后缀是否为
(不是
或
)?
只认
插件是否启用了 “on save” 自动修复?在 VS Code 设置中搜
,勾选对应选项
终端跑
能报错,但编辑器不提示 → 100% 是语言模式或路径绑定问题
别指望 sass-lint 修好所有顺序问题
它只管单条 CSS 规则内的属性顺序。真正导致样式覆盖失效的“顺序混乱”,往往出在更高层:
多个
文件的 CSS 输出顺序 —— 这归
和入口文件组织管,
完全不碰
Webpack 注入多个
标签的 DOM 顺序 —— 这得调
的
或合并 entry
第三方库的 CSS 被
进 JS 后动态插入 —— 这类顺序只能靠
的
配置干预
也就是说:
解决的是「一个声明块里属性怎么排」,不是「哪个文件的样式该压在上面」——后者是架构问题,不是格式问题。
property-sort-order@extend.btn { color: red; display: block; }displayProperty 'padding' should be before 'color'property-sort-order&:hover { top: 0; color: blue; }sass-lintscss_lintstylelintstylelintstylelint-scsssass-lintproperty-sort-order.sass-lint.ymlproperty-sort-order: { enabled: true, order: concentric-css }concentric-cssorder: ['display', 'position', ...]sass-lintscssfiles.associations"*.scss": "scss".sass-lint.yml.yml.yaml.jsonsass-lint.sass-lint.ymlsass lint auto fixnpx sass-lint src/**/*.scss@import@usesass-lintmini-css-extract-pluginchunkFilenameimportstyle-loaderinsertproperty-sort-order