1、

设计稿给的是px,但是需要做自适应,老生常谈的问题了,使用flex布局+rem+按比例设置根节点font-size大小来实现,这里最麻烦的就是把px改写成rem,手工改重复性太大,所幸,可以使用webpack插件在打包过程中帮我们自动转化

2、

安装插件

npm i postcss-px2rem

编写配置文件

编写核心代码,命名随意,我这里命名为px2rem并放在src/utils文件夹内

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

在main.js中引入刚才的文件

import "./utils/px2rem"

vue.config.js中引入px2rem包并在css plugins里启用postcss插件

const px2rem = require('postcss-px2rem')
const postcss = px2rem({remUnit: 100   //基准大小 baseSize,需要和rem.js中相同
})
module.exports = {css: {loaderOptions: {postcss: {plugins: [postcss]}}}
}

Tips

行内样式的px不会转换成rem
UI库如果要改变样式,在样式的单位要使用rem
不想转换成rem的话将px写成PX

Vue项目使用px2rem相关推荐

  1. vue项目的骨架及常用组件介绍

    vue项目基础结构 一个vue的项目,我觉得最小的子集其实就是{vue,vue-router,component},vue作为基础库,为我们提供双向绑定等功能.vue-router连接不同的" ...

  2. Vue项目pc端适配方案(scss)

    前言:vue项目适配可借助于插件lib-flexible 和postcss-px2rem. lib-flexible插件的作用:根据屏幕尺寸不同设置html根标签的字体大小,1rem即等于根标签的字体 ...

  3. vue项目中使用postcss-px2rem的方法总结

    vue项目中使用postcss-px2rem的2种方法 在项目中为了屏幕适配,经常会用到rem,postcss-px2rem就是为了让我们直接在将代码中px自动转化成对应的rem的一个插件.(下边的方 ...

  4. Vue项目实战-vue2(移动端)

    Vue项目实战(移动端)# 相关资料 (一) 创建项目 (二) 禁用Eslint (三) devtool (四) 添加less支持 (五) vue路由配置(背诵) (六) 父子组件通信(背诵) (七) ...

  5. canvas java 上传截图_在Vue项目中使用html2canvas生成页面截图并上传

    使用方法 项目中引入 npm install html2canvas html代码 //html代码 js代码 // 引入html2canvas import html2canvas from 'ht ...

  6. vue项目nginx部署子目录_vue 多项目部署---二级目录

    新项目:同一域名下部署多个vue项目, 根目录vue项目不需要按下面的方式进行打包部署 https://www.bitedit.com/ 下面三个项目以二级目录部署 https://www.bited ...

  7. 【亲测可用】用Electron和electron-builder打包Vue项目为exe可执行文件安装包(不推荐,个人觉得没有VNISEdit和NW好用,而且有些配置文件还挺脑残!)

    官方帮助文档http://www.electronjs.org/docs 有时候运行安装依赖包会很慢建议在(c)npm config edit之后弹出的.(c)npmrc记事本里面加入 electro ...

  8. 【2】Vue项目引用Element UI(饿了么框架)菜单导航条初期配置

    首先要理解Vue项目加载顺序: index.html → main.js → App.vue → nav.json→ routes.js → page1.vue index.html建议加入样式 &l ...

  9. 【1】用命令行搭建Vue项目

    先安装Node.js http://nodejs.cn/download 推荐国人安装淘宝npm镜像 npm install -g cnpm --registry=https://registry.n ...

最新文章

  1. 最长不下降子序列java代码_浅谈最长不下降子序列与最长上升子序列
  2. linux 磁盘延时,Linux:如何模拟硬盘延迟?我想在不使用CPU电源的情况下增加iowait值...
  3. .NET基金会讨论 .NET 开源事业之路
  4. 一月:你今年还回家过年吗?
  5. 知识总结: Activity的四种启动模式
  6. 【leetcode刷题笔记】Restore IP Addresses
  7. mysql innodb_log_group_home_dir_如何添加和调整mysql innodb log文件
  8. STM32f103正点原子小白 FLYMcu串口
  9. python多维列表索引越界怎么处理_python列表索引越界
  10. R语言做复杂金融产品的几何布朗运动的模拟
  11. BEEF的搭建与使用
  12. 常规调幅系统matlab结果,matlab课程设计参考题目
  13. 支付宝 APP登录 获取用户信息 PHP
  14. 五种方法安装Windows 7 64位系统
  15. 电子邮件发送服务器怎么看钱,验证电子邮件的验证码是发到哪里
  16. 机器学习40讲-12正则化处理:收缩方法与边际化
  17. oa服务器优化,如何优化OA以提高访问速度
  18. JavaWeb学习笔记(5)-B站尚硅谷
  19. 阿里云网盘,图什么?
  20. 实战揭露360和QQ医生系统漏洞检测真相!

热门文章

  1. 2023年天津财经大学珠江学院专升本专业课考试题型
  2. js undefind undeclared 区别 和 typeod安全防范措施
  3. Linux云主机安全入侵排查步骤
  4. python定义一个int_python中定义int类型的方法
  5. STM32对SD卡数据读取和在Ubuntu、stm32下的C程序中堆、栈、全局、局部等变量的分配地址的对比分析
  6. SpringBoot项目整合OpenFeign、实现动态IP+URL请求、自定义(编码器\解码器)
  7. java实现棋盘覆盖算法,java 棋盘覆盖算法
  8. 1011 A+B 和 C (15 分)
  9. 【MyBatis】resultMap和resultType的区别
  10. CSS设置背景透明,文字不透明。