美文网首页
什么是PostCSS?

什么是PostCSS?

作者: Allan要做活神仙 | 来源:发表于2019-04-25 11:15 被阅读0次

    2019-04-25

    原理

    用JS来处理CSS
    每个 PostCSS 插件都是一个 NodeJS 的模块

    现在有200多个插件,但还不够用

    主要功能

    就两个
    1)把 CSS 解析成 JavaScript 可以操作的 AST
    2)调用插件 处理 AST,得到结果

    可以支持变量和混入(mixin),增加浏览器相关的声明前缀,或是把使用将来的 CSS 规范的样式规则转译(transpile)成当前的 CSS 规范支持的格式

    常用的PostCSS插件

    Autoprefixer

    #content {
     display: flex;
    }
    

    变为:

    #content {
     display: -webkit-box;
     display: -webkit-flex;
     display: -ms-flexbox;
     display: flex;
    }
    

    cssnext

    允许开发者在当前项目中使用将来CSS版本的新特性(就像将ES6/7/8 转为 ES5)

    自定义属性和变量
    可以写变量
    样式规则嵌套

    .message {
     font-weight: normal;
     & .header {
       font-weight: bold;
     }
      @nest .body & {
       color: black;
     }
    }
    

    用cssnext转换为:

    .message {
     font-weight: normal
    }
     
    .message .header {
     font-weight: bold;
    }
     
    .body .message {
     color: black;
    }
    

    模块化CSS modules

    :global .title {
     font-size: 20px;
    }
     
    .content {
     font-weight: bold;
    }
    

    变为:

    .title {
     font-size: 20px;
    }
     
    ._content_6xmce_5 {
     font-weight: bold;
    }
    

    不能简单的把 PostCSS 归类成 CSS 预处理或后处理工具。PostCSS 所能执行的任务非常多,同时涵盖了传统意义上的预处理和后处理。

    ps:
    AST:抽象语法树结构(Abstract Syntax Tree)

    相关文章

      网友评论

          本文标题:什么是PostCSS?

          本文链接:https://www.haomeiwen.com/subject/egeagqtx.html