Vant+postcss-pxtorem 实现浏览器适配功能

 更新时间:2021年02月05日 11:17:10   作者:Heroin、  
这篇文章主要介绍了Vant+postcss-pxtorem 实现浏览器适配,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

Rem 布局适配
Vant 中的样式默认使用 px 作为单位,如果需要使用 rem 单位,推荐使用以下两个工具:
postcss-pxtorem 是一款 postcss 插件,用于将单位转化为 rem
lib-flexible 用于设置 rem 基准值
看到最后有惊喜!

一、npm安装

npm install postcss-pxtorem --save

二、新建.postcssrc.js做如下修改

注:
1、以下注释代码开启后运行脚本会出现报错的提示,虽不知道有什么用,注释就好啦。

module.exports = {
 "plugins": {
 	//"postcss-import": {},
  //"postcss-url": {},
  "autoprefixer": {
   browsers: ['Android >= 4.0', 'iOS >= 7']
  },
  "postcss-pxtorem": {
   "rootValue": 32,
   "propList": ["*"]
  }
 }
}

三、新建rem.js

const baseSize = 32
// 设置 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()
}

四、在main.js中引入rem.js

import "./rem.js"

至此,Vant+postcss-pxtorem 实现浏览器适配就完成了。
即可直接在样式中畅快的使用px且自动转换成rem。
等等先别走!!!客官。
以为到这里就结束了吗?NO,往下看还有一份不基于postcss-pxtorem 来实现的rem适配哦。
话不多说直接上代码。

五、新建rem.js并再main.js中引入

(function (doc, win) {
 var docEl = doc.documentElement
 var resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'
 var recalc = function () {
  var clientWidth = docEl.clientWidth
  if (!clientWidth) return
  if (parseInt(20 * (clientWidth / 320)) > 35) {
   docEl.style.fontSize = 35 + 'px'
  } else {
   docEl.style.fontSize = 20 * (clientWidth / 320) + 'px'
  }
 }
 if (!doc.addEventListener) return
 win.addEventListener(resizeEvt, recalc, false)
 doc.addEventListener('DOMContentLoaded', recalc, false)
})(document, window)

import "./rem.js"

六、添加样式全局变量并使用

// 当前页面宽度相对于 750 宽的缩放比例,可根据自己需要修改。
$rem: (640/750)/40;
body{
	width: $rem * 24rem;
}

到此这篇关于Vant+postcss-pxtorem 实现浏览器适配的文章就介绍到这了,更多相关Vant+postcss-pxtorem 适配内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅谈JS函数节流防抖

    浅谈JS函数节流防抖

    本篇文章主要介绍了JS函数节流防抖,函数节流和函数防抖为了解决类似需求应运而生的,有兴趣的可以了解一下
    2017-10-10
  • uniapp介绍与使用以及小程序实时获取视频播放时间

    uniapp介绍与使用以及小程序实时获取视频播放时间

    这篇文章主要给大家介绍了关于uniapp介绍与使用以及小程序实时获取视频播放时间的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用uniapp具有一定的参考学习价值,需要的朋友可以参考下
    2023-02-02
  • uni-app调取接口的3种方式以及封装uni.request()详解

    uni-app调取接口的3种方式以及封装uni.request()详解

    我们在实际工作中要将数据传输到服务器端,从服务器端获取信息,都是通过接口的形式,下面这篇文章主要给大家介绍了关于uni-app调取接口的3种方式以及封装uni.request()的相关资料,需要的朋友可以参考下
    2022-08-08
  • js日历功能对象

    js日历功能对象

    问题产生需求:做OA时弄到 备忘这个功能,想以日历的形式展现
    2012-01-01
  • JavaScript 2018 中即将迎来的新功能

    JavaScript 2018 中即将迎来的新功能

    JavaScript 2018 中即将迎来的新功能:异步生成器及更好的正则表达式。更多常规正则表达式功能大家跟随小编一起通过本文学习吧
    2018-09-09
  • JavaScript闭包相关知识解析

    JavaScript闭包相关知识解析

    这篇文章主要介绍了JavaScript闭包相关知识解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • TypeScript接口与泛型全面精讲

    TypeScript接口与泛型全面精讲

    接口是一系列抽象方法的声明,是一些方法特征的集合,这些方法都应该是抽象的,需要由具体的类去实现,然后第三方就可以通过这组抽象方法调用,让具体的类执行具体的方法,泛型是静态类型语言的基本特征,允许将类型作为参数传递给另一个类型、函数、或者其他结构
    2022-10-10
  • JavaScript尾递归的实现及应用场景

    JavaScript尾递归的实现及应用场景

    本文主要介绍了JavaScript尾递归的实现及应用场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • JavaScript弹出新窗口后向父窗口输出内容的方法

    JavaScript弹出新窗口后向父窗口输出内容的方法

    这篇文章主要介绍了JavaScript弹出新窗口后向父窗口输出内容的方法,涉及javascript窗口操作的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • JavaScript使用正则表达式获取全部分组内容的方法示例

    JavaScript使用正则表达式获取全部分组内容的方法示例

    这篇文章主要介绍了JavaScript使用正则表达式获取全部分组内容的方法,结合实例形式分析了javascript正则匹配的相关操作技巧,需要的朋友可以参考下
    2017-01-01

最新评论