postcss-pxtorem

postcss-pxtorem是将px转化为rem的一个插件css

rem单位是根据根节点字体大小 =>  设置根节点大小 => 动态改变rem大小webpack

Step1:实现rem布局web

Const baseSize = 32     // 基准大小

Function setRem () {
    const scale = documentElement.clientWidth / 750      //当前页面宽度相对于750宽的缩放比例
    // 设置根节点字体大小
    document.documentElement.style.fontSize = ( baseSize * Math.min(scale,2)) + ‘px’
}

setRem();   // 初始化

window.onresize = function() {
    setRem();     // 改变窗口时从新设置rem
}

Step2:数组

Main.js中引入文件后,能够查看根节点,查看是否有被自动添加font-size布局

Note:完成这一步实际上就是实现了rem布局,实际开发的时候,仍是须要咱们去计算对应的rem值去开发post

Step3:配置webpack,自动转化px对应的rem值字体

配置好之后,就能够在项目中只用px开发了,例如:this

Body {
    width: 750px;
    height: 1136px;
}

将自动转化为remspa

实际应用中插件

function transferRem() {
    /* this is the foundation of the rem layout */
    const docEl = document.documentElement;
    const resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize';
    const recalc = function () {
      const { clientWidth } = docEl;
      if (clientWidth === undefined) return;
      if (clientWidth > 414) {
        docEl.style.fontSize = `${100 * (clientWidth / 1920)}px`;
        // docEl.style.fontSize = '20px';
        window.rootRate = clientWidth / 1920;
        return;
      }
      docEl.style.fontSize = `${20 * (clientWidth / 375)}px`;
    };
    recalc();
    window.addEventListener(resizeEvt, recalc, false);
    document.addEventListener('DOMContentLoaded', recalc, false);
  };

wenpack配置

rootValue为75,就是对根节点大小进行设置

unitPrecision为5,就是转换成rem后保留的小数点位数

propList是一个存储哪些将被转换的属性列表,假设须要仅对边框进行设置,能够写['*','!border*'],意思是排除带border的属性

selectorBlackList则是一个对css选择器进行过滤的数组,好比设置为['fs'],那么例如fs-xl类型,里面有关px的样式将不被转化,这里也支持正则

mixPixelValue的意思是,设置了12,就是全部小于12px的样式都不被转化,那么border就自动保留px值啦

本站公众号
   欢迎关注本站公众号,获取更多信息