vue项目中使用px2rem

Posted 是小橙鸭丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue项目中使用px2rem相关的知识,希望对你有一定的参考价值。

1.为什么使用rem做适配?

答:当你使用px做单位的时候,在不通分辨率的手机型号,他显示的大小就是设定的多少px,当手机尺寸大时,那么元素就会显得很小,当手机分辨率过小时,元素就会显得很大,因为我们引入rem单位,根据不通分辨率来做px适配,这样使元素大小更加合适。

2.使用px2rem插件

将px转为rem,书写的时候直接写px就可以,编译的时候会将px单位自动转换为对应的rem单位

第一步:安装postcss-px2rem

npm add postcss-px2rem

第二步:在 vue.config.js 中添加配置

const px2rem = require('postcss-px2rem')

const postcss = px2rem({
  remUnit: 16   //基准大小 baseSize,需要和rem.js中相同
})

module.exports = {
  css: {
    loaderOptions: {
      postcss: {
        plugins: [
          postcss
        ]
      }
    }
  }
}

第三步:添加 rem.js文件

在src下我们新建一个config文件夹,在文件夹中新建rem.js文件、加入以下代码

// 基准大小
const baseSize = 16
// 设置 rem 函数
function setRem() {
  // 当前页面宽度相对于 750 宽的缩放比例,可根据自己需要修改。
  const scale = document.documentElement.clientWidth / 750
  // 设置页面根节点字体大小
  document.documentElement.style.fontSize = baseSize * Math.min(scale, 2) + 'px'
}
// 初始化
setRem()
// 改变窗口大小时重新设置 rem
window.onresize = function() {
  setRem()
}

第四步:引入rem.js文件

在main.js引入rem.js文件

import './config/rem'  //px转rem

第五步:重启服务

npm run server

 

这样配置就完成了、我们可以看看效果

 

 

特别注意:

  • ①如果在行内写px单位的话是不会转换成rem单位的,
  • ②如果使用UI库必须要在行内写样式大小的话,要转换为rem书写
  • ③无需转换rem的可以写Px或者PX

以上是关于vue项目中使用px2rem的主要内容,如果未能解决你的问题,请参考以下文章

vue-cli3.0 使用px2rem 或 postcss-plugin-px2rem

淘宝适配方案px2rem在Vue+Sass和React+Less中的使用

淘宝适配方案px2rem在Vue+Sass和React+Less中的使用

在vue-cli中使用px2rem,配合lib-flexible使用

px2rem 移动端自适应方案

vue使用flexible和px2rem实现移动端适配