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


Posted in Javascript onFebruary 05, 2021

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 适配内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
jquery下jstree简单应用 - v1.0
Apr 14 Javascript
js弹出模式对话框,并接收回传值的方法
Mar 12 Javascript
使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
Nov 05 Javascript
jQuery循环滚动新闻列表示例代码
Jun 17 Javascript
jQuery中mouseover事件用法实例
Dec 26 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
Aug 02 Javascript
浅谈JS读取DOM对象(标签)的自定义属性
Nov 21 Javascript
基于ES6作用域和解构赋值详解
Nov 03 Javascript
JS实现HTML页面中动态显示当前时间完整示例
Jul 30 Javascript
JS实现简易留言板(节点操作)
Mar 16 Javascript
javascript实现简易数码时钟
Mar 30 Javascript
vue 实现超长文本截取,悬浮框提示
Jul 29 Javascript
JavaScript代码实现微博批量取消关注功能
Feb 05 #Javascript
js属性对象的hasOwnProperty方法的使用
Feb 05 #Javascript
关于element的表单组件整理笔记
Feb 05 #Javascript
详解JavaScript中的this指向问题
Feb 05 #Javascript
JavaScript事件概念详解(区分静态注册和动态注册)
Feb 05 #Javascript
详解javascript脚本何时会被执行
Feb 05 #Javascript
前端如何实现动画过渡效果
Feb 05 #Javascript
You might like
用ADODB.Stream转换
2007/01/22 Javascript
JavaScript 页面坐标相关知识整理
2010/01/09 Javascript
兼容IE和FF的js脚本代码小结(比较常用)
2010/12/06 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
JavaScript使用RegExp进行正则匹配的方法
2015/07/11 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
2016/11/29 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
2017/01/23 Javascript
微信小程序 图片加载(本地,网路)实例详解
2017/03/10 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
vue页面使用阿里oss上传功能的实例(一)
2017/08/09 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法
2018/06/07 Javascript
JavaScript实现的拼图算法分析
2019/02/13 Javascript
vue+element实现表单校验功能
2019/05/20 Javascript
Node.js系列之连接DB的方法(3)
2019/08/30 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
小程序点餐界面添加购物车左右摆动动画
2020/09/23 Javascript
python实现文件分组复制到不同目录的例子
2014/06/04 Python
在Docker上开始部署Python应用的教程
2015/04/17 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
用TensorFlow实现戴明回归算法的示例
2018/05/02 Python
python解决字符串倒序输出的问题
2018/06/25 Python
python生成九宫格图片
2018/11/19 Python
python @classmethod 的使用场合详解
2019/08/23 Python
Python如何使用正则表达式爬取京东商品信息
2020/06/01 Python
Python try except else使用详解
2021/01/12 Python
css3一款3D字体带阴影效果的实现步骤
2013/03/20 HTML / CSS
汤米巴哈马官方网站:Tommy Bahama
2017/05/13 全球购物
亚历山大·王官网:Alexander Wang
2017/06/23 全球购物
大专毕业生自我鉴定
2013/11/21 职场文书
校园网站的创业计划书范文
2013/12/30 职场文书
我的大学生活职业生涯规划
2014/01/02 职场文书
实习老师离校感言
2014/02/03 职场文书
大学生职业生涯规划书
2014/03/14 职场文书
小学安全汇报材料
2014/08/14 职场文书
留学推荐信怎么写
2015/03/26 职场文书