vue项目将px转换为rem进行移动端适配

news/2024/7/10 1:54:43 标签: js, 文件下载, vue

使用postcss-px2rem-exclude实现将px转换为rem进行移动端适配
安装依赖

npm install postcss-px2rem-exclude --save-dev

.postcssrc.json添加:

module.exports = {
........
'plugins':{
	"autoprefixer":{},
	'postcss-px2rem-exclude':{
		remUnit:37.5,
		propList:[],
		exclude:/(node_modules)/i
	}
}
}

备注:若安装postcss-px2rem-exclude后未自动生成.postcssrc.json文件,可自行在根文件夹下手动创建

使用postcss-px2rem-exclude实现将px转换为rem进行移动端适配还需配合lib-flexible或自行编写转换规则才可进行实现,两种方法如下:
1、npm install lib-flexible --save
在main.js中引入

import 'lib-flexible/flexible'

2、与main.js同级文件夹下新建编写rem.js后在main.js中引入rem.js文件
rem.js文件代码如下:

const baseSize = 32;
function setRem(){
	const winWidth = document.documentElement.clientWidth/375;
	document.documentElement.style.fontSize =( baseSize*Math.min(winWidth,2))+'px
}

方法一与方法二的区别:
1、方法一不需要进行新文件的创建和编写
2、使用方法一,自动设置根元素字体大小时为屏幕的宽度除以10,例如屏幕为375,则会发现根元素字体大小为37.5px,414宽度的屏幕根元素字体大小为41.4px,以此类推;使用方法二,标准屏幕375宽度下,根元素字体大小为rem.js设置的baseSize的值为32px。

使用postcss-px2rem-exclude实现将px转换为rem进行移动端适配弊端:(在小编的项目中发现)
1、只能将.vue文件中,style标签中的px转换为rem,对行内样式无效
2、.css文件中的px转换无效,意味着在css文件中单位要使用rem
3、使用的UI框架中的样式px转换也无效,若需要进行转换,可在.vue文件style标签中使用/deep/对需要转换的类名进行重写或复写,或在css文件中对需转换的类名手动进行rem的转换。


http://www.niftyadmin.cn/n/1202675.html

相关文章

js 数字大小写字母校验、数字大小写字母汉字的检验

数字大小写字母的校验(渠道ID) export const checkNumChar (id) > {var reg /^[0-9a-zA-Z]*$/;if (reg.test(id)) {console.log(reg.test(id));return true;} else {console.log(reg.test(id));swal({title:请输入有效值,type:error,timer:3000,sho…

vue显示PDF文件

小编最近接手的项目中&#xff0c;有个需求&#xff0c;前端显示后端返回的PDF格式的文件&#xff0c;经过小编两天的调研和试验&#xff0c;终于找到了一个比较好的插件方法&#xff0c;直接贴代码。 1、安装 npm i vue-pdf-signature --save-dev2、pdfShow.vue <templat…

渐析java的浅拷贝和深拷贝

首先来看看浅拷贝和深拷贝的定义&#xff1a; 浅拷贝&#xff1a;使用一个已知实例对新创建实例的成员变量逐个赋值&#xff0c;这个方式被称为浅拷贝。 深拷贝&#xff1a;当一个类的拷贝构造方法&#xff0c;不仅要复制对象的所有非引用成员变量值&#xff0c;还要为引用类型…

vue canvas实现手写签字

小编最近的项目与合同有关&#xff0c;与合同有关就避免不了合同的签署&#xff0c;自然而然就需要搞个签名版啦&#xff0c;废话少说&#xff0c;上代码比较实在。 sign.vue <template><div class"signHandle"><canvasref"signHandle"cl…

Struts 2读书笔记-----Struts 2的异常处理

对于MVC框架而言。我们希望&#xff1a;当Action处理用户请求时。如果出现了异常1&#xff0c;则系统就会转入视图资源1&#xff0c;在该视图资源上输入服务器提示&#xff1b;如果出现了异常2&#xff0c;则系统会转入子图资源2&#xff0c;在该视图资源上输入服务器提示&…

Webpack源码基础-Tapable从使用Hook到源码解析

当我第一次看webpack源码的时候&#xff0c;会被其中跳转频繁的源码所迷惑&#xff0c;很多地方不断点甚至找不到头绪&#xff0c;因为plugin是事件系统&#xff0c;没有明确的调用栈。这一切都是因为没有先去了解webpack的依赖库Tapable。 Tapble是webpack在打包过程中&#x…

Struts 2读书笔记------struts 2的标签

Struts 2提供了大量的标签来开发表现层页面。这些标签的大部分&#xff0c;都可以在各种表现层技术中使用。 Struts 2 将所有标签分为以下三类&#xff1a; UI(用户界面)&#xff1a;主要用于生成HTML元素的标签 非UI标签&#xff1a;主要用于数据访问、逻辑控制等的标签 Ajax标…

小程序如何使用async和await

大家都知道在使用promise的时候能配合async和await是非常爽的一件事&#xff0c;但是在原生小程序开发中默认是不可以使用async和await的&#xff0c;如果直接使用会报一个错误“regeneratorRuntime is not defined”&#xff0c;那么我们改如何使用呢&#xff0c;我们可以直接…