美文网首页
vite-PostCss

vite-PostCss

作者: skoll | 来源:发表于2023-05-01 18:33 被阅读0次

    简介

    1 .主要是对css做一些解析和转换的工作
    2 .postCss是在css的基础上,对css进行转换。模块化,加前缀,处理兼容性。然后输出一个新的css
    3 .postCss标准化。使用流行的normalize.css的某些部分来初始化html默认样式
    4 .可以将css解析成抽象语法树
    5 . 通过转换成的抽象语法树,暴露出的api可以让我们对这些css进行操作,也就是会说我们可以使用js来开发插件了

    6 .一些基础必备的操作

    1 .变量。这个可以用原生的
    2 .作用域。这个可以用css module
    3 .嵌套
    *   添加支持PostCSS的混合宏、变量以及条件支持。
    *   探索代码嵌套的不同方式,如BEM和PostCSS的嵌套。
    *   使用PostCSS优化媒体查询,获得最佳性能。
    *   使用PostCSS处理器给元素,如图像、字体、网格、SVG和高清图像添加样式。*   熟悉使用插件和使用PostCSS API扩展插件。
    *   定制自己的处理器并在不同的网站上测试,比如WordPress。
    *   在PostCSS中编写一个自定义语法,如类似Sass、LESS或Stylus处理器的语法。
    *   提供对未来的CSS特性(如CSS4特性和一些CSS3特性)的支持。著作权归作者所有。
    4 .压缩css
    5 .代码审查
    

    7 .PostCss 运行机制

    1 .postcss 本身并不会处理任何具体的任务,只有加了各种插件才有功能
    2 .postcss 会将css代码解析成包含一系列节点的抽象语法树。树上的每一个节点都是css代码中的某个属性的符号化表示
    3 .编译后的抽象语法树会被传递给后续的插件做进一步的处理。
    
    image.png

    常用的插件

    1 .import:模块合并,减少http请求,提高加载的性能
    2 .autoprefixier:自动加前缀 https://github.com/browserslist/browserslist
    3 .cssnano:压缩代码
    4 .插件列表 https://github.com/postcss/postcss/blob/main/docs/plugins.md
    5 .https://postcss.org/

    目前用到的插件配置

    plugins:[
            postcsspxtoviewport({
              unitToConvert:'px',
              viewportWidt:730,
              // 设计稿的宽度
              unitPrecision:1,
              landscape:true,
            }),
    //将px转为vw
            postcssPresetEnv(
              {importFrom:path.resolve(__dirname,'./variable.css')}
            ),
    autofrefix({
                browsers:['last 2 versions']  // 指定兼容哪些浏览器
    //根据can i use 上面的数据
            })
            // 自动补全都能做,autoprefixer这个插件的功能
          ]
    

    css module 简单举例

    1 .正常的使用

    //example.css
    
    .article {
        font-size: 14px;
    }
    .title {
        font-size: 20px;
    }
    

    2 .编译之后的操作

    {
        "article": "zxcvb",
        "title": "zxcva"
    }
    
    .zxcvb{
        font-size: 14px;
    }
    .zxcva{
        font-size: 20px;
    }
    

    3 .使用编译之后的类名

    import style from 'style.json';
    
    class Example extends Component{
        render() {
            return (
                <div classname={style.article}>
                    <div classname={style.title}></div>
                </div>
            )
        }
    }
    

    相关文章

      网友评论

          本文标题:vite-PostCss

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