vuejs - - - - - 移动端设备兼容(pxtorem)

pxtorem的使用

  • [1. 依赖安装](#1. 依赖安装)
  • [2. vue.config.js配置](#2. vue.config.js配置)
  • [3. 动态设置html的font-size大小](#3. 动态设置html的font-size大小)
  • [4. 效果如图:](#4. 效果如图:)

1. 依赖安装

yarn add postcss-pxtorem -D

2. vue.config.js配置

js 复制代码
module.exports = {
	...
		  css: {
		    loaderOptions: {
		      postcss: {
		        plugins: [
		          require("postcss-pxtorem")({
		            // 把px单位换算成rem单位
		            rootValue: 37.5, //换算基数,
		            unitPrecision: 3, //允许REM单位增长到的十进制数字,小数点后保留的位数。
		            propList: ["*"],
		            exclude: /(node_module)/, //默认false,可以(reg)利用正则表达式排除某些文件夹的方法,例如/(node_module)/ 。如果想把前端UI框架内的px也转换成rem,请把此属性设为默认值
		            selectorBlackList: [".van"], //要忽略并保留为px的选择器,本项目我是用的vant ui框架,所以忽略他
		            mediaQuery: false, //(布尔值)允许在媒体查询中转换px。
		            minPixelValue: 1, //设置要替换的最小像素值
		          }),
		        ],
		      },
		    },
		  },
	...
}

3. 动态设置html的font-size大小

/src/utils/resize.js

js 复制代码
// 基准大小
const baseSize = 37.5;
// 设置 rem 函数
function setRem() {
  // 当前页面宽度相对于 750 宽的缩放比例
  const clientWidth = document.documentElement.clientWidth;
  // 仅当视口宽度小于800时,视为移动端
  if (clientWidth < 800) {
    const scale = clientWidth / 750;
    // 设置页面根节点字体大小
    document.documentElement.style.fontSize =
      baseSize * Math.min(scale, 2) + "px";
  } else {
    document.documentElement.style.fontSize = "37.5px";
  }
}
// 初始化
setRem();
// 改变窗口大小时重新设置 rem
window.onresize = function() {
  setRem();
};

main.js 引入

js 复制代码
import "./utils/resize";

4. 效果如图:

pc端的font-size

移动端的font-size

相关推荐
这儿有一堆花17 分钟前
Vue 是什么:一套为「真实业务」而生的前端框架
前端·vue.js·前端框架
NCDS程序员1 小时前
v-model: /v-model/ :(v-bind)三者核心区别
前端·javascript·vue.js
小杨同学呀呀呀呀1 小时前
Ant Design Vue <a-timeline>时间轴组件失效解决方案
前端·javascript·vue.js·typescript·anti-design-vue
Mr Xu_10 小时前
告别冗长 switch-case:Vue 项目中基于映射表的优雅路由数据匹配方案
前端·javascript·vue.js
前端摸鱼匠10 小时前
Vue 3 的toRefs保持响应性:讲解toRefs在解构响应式对象时的作用
前端·javascript·vue.js·前端框架·ecmascript
未来之窗软件服务12 小时前
未来之窗昭和仙君(六十五)Vue与跨地区多部门开发—东方仙盟练气
前端·javascript·vue.js·仙盟创梦ide·东方仙盟·昭和仙君
phltxy13 小时前
Vue 核心特性实战指南:指令、样式绑定、计算属性与侦听器
前端·javascript·vue.js
Byron070714 小时前
Vue 中使用 Tiptap 富文本编辑器的完整指南
前端·javascript·vue.js
Byron070716 小时前
从 0 到 1 搭建 Vue 前端工程化体系:提效、提质、降本实战落地
前端·javascript·vue.js
zhengfei61116 小时前
【AI平台】- 基于大模型的知识库与知识图谱智能体开发平台
vue.js·语言模型·langchain·知识图谱·多分类