react中px转rem(px2rem和px to rem &rpx的使用)

.比如设计稿是750px,假设根元素字体大小设置为100px,则1rem = 100px;所以为了适应各种屏幕尺寸:一般设置根元素font-size 为 屏幕宽度/UI设计图宽度 *100+‘px’,这也相当于1rem对应的px尺寸。可配合媒体查询@media来设置。用的时候除以100,10px = 0.1rem

1.直接在scss文件中使用函数

定义函数

 @function px2rem($px) {
   @return $px / 75 * 1rem;
 }

使用时调用函数

要看设计稿尺寸哦,看设置的根元素为多少,例设置设备宽度为750,根元素字体为75,但我们设计稿为375的话,就要把px*2传进去~

如果是 width: 45px
改成rem为
width:px2rem(90)

2.安装插件
直接安装postcss-pxtorem插件,在postcss-loader中postcss-scss选项中配置

注:px2rem中的exclude选项两边不能带引号,项目路径要用正则表达式表达,多个选项之前用"|"隔开。

例: pc/index/guide要使用pc(\|/)index(\|/)guide

 {
      loader: 'postcss-loader',
      options: {
        parser: 'postcss-scss',
        plugins: () => [
          autoprefixer({
            broswers: ['last 5 versions', '> 0.05%'],
            remove: false,
          }),
          require('postcss-pxtorem')({
            rootValue : 37.5,
            selectorBlackList  : [], //过滤
            propList   : ['*'],
             // 规则是class中包含的字符串,如vux中所有的class前缀都是weui-。也可以是正则。
            // exclude: /node_modules/i ,
            // exclude: /packages(\\|\/)detail/i ,
            // exclude: /node_modules|pc(\\|\/)index(\\|\/)guide/i ,
        ],
      },
    },

3.vscode插件 px to rem & rpx(cssrem)
这款插件会自动把px转换成rem,在vscode 插件扩展里我们设置好根字体设计稿尺寸等
react中px转rem(px2rem和px to rem &rpx的使用)_第1张图片

然后我们写px的时候屏幕上会自动出现 rem的选项,这时候我们点击一下就可以啦,这样也可以实现等比缩放了!
在这里插入图片描述

最后为了我们改变窗口大小或者在多个不同分辨率的屏幕上移动,我们还要写个window.resize()方法

export const setRem = () => {
  const baseSize = 75;
  function resizeRem() {
    const scale = document.documentElement.clientWidth / 750;
    document.documentElement.style.fontSize = `${baseSize * scale}px`;
  }
  resizeRem();
  window.onresize = function () {
    console.log('onresize');
    resizeRem();
  };
};

你可能感兴趣的:(css,react,工具类,react.js,scss-loader,px2rem)