@csstools/postcss-cascade-layers

中文文档
6.0.2发布于 2026/10/06MIT-0TypeScriptES Module近 30 天下载 2819.3万

CSS 中使用级联层

中文使用文档
文档目录7 节
  1. 如何运作
  2. 使用量
  3. 选项
  4. 关于RevertLayer关键词
  5. 关于有条件规则的变动
  6. 进口规则
  7. 贡献者

PostCSS 叠加层 PostCSS Logo

npm install @csstools/postcss-cascade-layers --save-dev

PostCSS 叠加层 让您使用 @layer 之后 分层规格。关于层的更多信息,请查看 CSS 叠加层完整指南 米里亚姆·苏珊娜著.


target {
    color: purple;
}

@layer {
    target {
        color: green;
    }
}


/* becomes */


target:not(#\#) {
    color: purple;
}

target {
        color: green;
    }

如何运作

PostCSS 叠加层 创造特异性的"层".

它对您所有的风格都应用了额外的特异性,基于:

  • 找到最具体的选择器
  • 定义地层的顺序
@layer A, B;

@layer B {
    .a-less-specific-selector {
        /* styles */
    }
}

@layer A {
    #something #very-specific {
        /* styles */
    }
}

@layer C {
    .a-less-specific-selector {
        /* styles */
    }
}

最具体的选择器 :

  • #something #very-specific
  • [2, 0, 0]
  • 2 + 1 - > (中文) 3 确保没有重叠

层定义的顺序:

  • A
  • B
  • C
层前一次调整具体调整选择器
A00 + 0 = 0不详
B00 + 3 = 3:not(#\#):not(#\#):not(#\#)
C33 + 3 = 6:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)

这种方法让更重要的(后)层总是凌驾于不太重要的(更早)层上.
层层内部有足够的空间 让每个选取者按预期工作 并覆盖.

更多层次的特异性会更长 :not(...) 要生成的选择器 .

[大 PostCSS 叠加层 假设处理您的完整 CSS 捆绑.
如果您的构建工具单独处理文件或并行处理文件, 输出将是不正确的 .
使用 @csstools/postcss-bundler 财务报告和审定财务报表 @import 语句是在此插件处理之前确保您的 CSS 捆绑的一种方法 .

使用量

添加 PostCSS 叠加层 对您的项目:

npm install postcss @csstools/postcss-cascade-layers --save-dev

当作一个 邮政 插件 :

const postcss = require('postcss');
const postcssCascadeLayers = require('@csstools/postcss-cascade-layers');

postcss([
    postcssCascadeLayers(/* pluginOptions */)
]).process(YOUR_CSS /*, processOptions */);

选项

关于RevertLayer关键词

这个 onRevertLayerKeyword 选项启用警告,如果 revert-layer 已使用. 正在转换 revert-layer 对于此插件中较旧的浏览器是不可能实现的 .

默认为 warn

postcssCascadeLayers({ onRevertLayerKeyword: 'warn' }) // 'warn' | false
/* [postcss-cascade-layers]: handling "revert-layer" is unsupported by this plugin and will cause style differences between browser versions. */
@layer {
    .foo {
        color: revert-layer;
    }
}

关于有条件规则的变动

这个 onConditionalRulesChangingLayerOrder 如果在条件规则中以多个不同的顺序声明了地层,选项将启用警告. 在此插件中无法为旧浏览器正确转换这些层 .

默认为 warn

postcssCascadeLayers({ onConditionalRulesChangingLayerOrder: 'warn' }) // 'warn' | false
/* [postcss-cascade-layers]: handling different layer orders in conditional rules is unsupported by this plugin and will cause style differences between browser versions. */
@media (min-width: 10px) {
    @layer B {
        .foo {
            color: red;
        }
    }
}

@layer A {
    .foo {
        color: pink;
    }
}

@layer B {
    .foo {
        color: red;
    }
}

进口规则

这个 @import at-rule 也可以与级联层一起使用,具体用于创建类似的新层:

@import 'theme.css' layer(utilities);

如果您的 CSS 使用 @import 有层层,你还需要 邮政进口 插件 。 仅此插件无法处理 @import 规则.

此插件会在发现时提醒您 邮政进口 没有改变@import 规则.

postcssCascadeLayers({ onImportLayerRule: 'warn' }) // 'warn' | false

贡献者

此插件的作者是 奥卢·尼伊-阿沃苏西 财务报告和审定财务报表 萨娜·贾韦德 从 怪鸟 还有罗曼·门克.

版本与发布记录

@csstools/postcss-cascade-layers 共发布 25 个版本,首次发布于 2022/05/12;过去 12 个月发布了 3 个版本。

版本发布日期距今
6.0.2latest2026/10/061 个月前
6.0.12026/09/251 个月前
6.0.02026/01/149 个月前
5.0.22025/06/261.4 年前
5.0.12024/10/242 年前
5.0.02024/08/042 年前

关于 @csstools/postcss-cascade-layers 的常见问题

@csstools/postcss-cascade-layers 是什么?

CSS 中使用级联层

如何安装 @csstools/postcss-cascade-layers?

在项目目录运行 npm install @csstools/postcss-cascade-layers,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:postcss(^8.4)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@csstools/postcss-cascade-layers 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@csstools/postcss-cascade-layers 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@csstools/postcss-cascade-layers 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20.19.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@csstools/postcss-cascade-layers 可以商用吗?

@csstools/postcss-cascade-layers 使用 MIT-0 许可。声明的许可为 MIT-0,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

@csstools/postcss-cascade-layers 的下载量有多少?

根据 npm 官方下载统计,@csstools/postcss-cascade-layers 在 2026/10/11 – 2026/11/09 这 30 天内被下载 28,192,613 次,日均约 939,754 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@csstools/postcss-cascade-layers 还在维护吗?

最新版本 6.0.2 发布于 2026/10/06(1 个月前);至今共发布 25 个版本,其中过去 12 个月发布了 3 个;首次发布于 2022/05/12。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。