【Vue2 pc端项目不同分辨率屏幕窗口自适应】

Vue2 pc端项目不同分辨率屏幕窗口自适应

1.脚手架创建项目

vue create 项目名

2.安装 postcss-pxtorem

npm install postcss-pxtorem -D

postcss-pxtorem 插件会将页面中的px像素单位,经过计算然后改写成rem,
在项目中根据原型图上的数据单位来进行样式编辑就可以
3.配置相关文件
可以直接将下面代码放到main.js文件中,也可以单独写一个js文件,然后在main.js 中挂载

import Vue from "vue";
import App from "./App.vue";
import "./registerServiceWorker";
import router from "./router";
import store from "./store";

Vue.config.productionTip = false;

// 屏幕自适应穿透px为rem模板
const baseSize = 16; // 设计稿根字体大小
function setRem() {
  if (
    document.documentElement.clientWidth >= 762 &&
    document.documentElement.clientWidth <= 2040
  ) {
    const scale = document.documentElement.clientWidth / 1920; // 计算缩放比例
    document.documentElement.style.fontSize =
      baseSize * Math.min(scale, 2) + "px"; // 设置根字体大小
  }
  if (
    document.documentElement.clientWidth >= 300 &&
    document.documentElement.clientWidth <= 762
  ) {
    // const scale = (750) / 1920 // 计算缩放比例
    document.documentElement.style.fontSize = 62.5 + "%"; // 设置根字体大小
    // document.documentElement.style.fontSize = (baseSize * Math.min(scale, 2)) + 'px'
  }
}

setRem();
window.addEventListener("resize", setRem); // 窗口大小改变时重新计算

new Vue({
  router,
  store,
  render: (h) => h(App),
}).$mount("#app");

我这边是按照1920的尺寸设置,可以根据实际大小设置
然后在项目的根目录下创建一个名字为 postcss.config 的js文件,文件中放入一下内容

module.exports = {
  plugins: {
    'autoprefixer': {},
    'postcss-pxtorem': {
      rootValue: 16, // 设计稿根字体大小
      unitPrecision: 5, // 转换后保留小数点位数
      propList: ['*'], // 将所有属性的px值都转换为rem
      selectorBlackList: [], // 不需要转换的类名
      replace: true,
      mediaQuery: false,
      minPixelValue: 0 // 小于等于0时不转换
    }
  }
}

至此窗口自适应大小就配置完了
在这里插入图片描述
在这里插入图片描述

配置完成以后 就会将项目中写的500px像素单位转写成31.25rem单位
但是这种方式只能将style中的css样式改写成rem,行内的样式不能进行改写

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值