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中html、val与text三者属性取值的联系与区别介绍
Dec 29 Javascript
jQuery实现的左右移动焦点图效果
Jan 14 Javascript
Dojo获取下拉框的文本和值实例代码
May 27 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
Nov 30 Javascript
快速实现jQuery多级菜单效果
Feb 01 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
Mar 02 Javascript
基于react框架使用的一些细节要点的思考
May 31 Javascript
BootStrap 页签切换失效的解决方法
Aug 17 Javascript
JS实现仿微信支付弹窗功能
Jun 25 Javascript
vue实现todolist功能、todolist组件拆分及todolist的删除功能
Apr 11 Javascript
js回文数的4种判断方法示例
Jun 04 Javascript
微信小程序聊天功能的示例代码
Jan 13 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
SONY ICF-SW07收音机电路分析
2021/03/02 无线电
3
2006/10/09 PHP
php生成N个不重复的随机数实例
2013/11/12 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
PHP中数组转换为SimpleXML教程
2019/01/27 PHP
Laravel框架Eloquent ORM删除数据操作示例
2019/12/03 PHP
JS 强制设为首页的代码
2009/01/31 Javascript
屏蔽相应键盘按钮操作
2014/03/10 Javascript
JQuery 使用attr方法实现下拉列表选中
2014/10/13 Javascript
JS控制网页动态生成任意行列数表格的方法
2015/03/09 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
微信小程序左右滑动切换页面详解及实例代码
2017/02/28 Javascript
js实现分页功能
2017/05/24 Javascript
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
webpack4 CSS Tree Shaking的使用
2018/09/03 Javascript
JS实现canvas简单小画板功能
2020/06/23 Javascript
python实现判断数组是否包含指定元素的方法
2015/07/15 Python
详解Django rest_framework实现RESTful API
2018/05/24 Python
django主动抛出403异常的方法详解
2019/01/04 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
Python利用Xpath选择器爬取京东网商品信息
2020/06/01 Python
Python调用系统命令os.system()和os.popen()的实现
2020/12/31 Python
Python3+Appium安装及Appium模拟微信登录方法详解
2021/02/16 Python
加拿大休闲和工业服装和鞋类零售商:L’Équipeur
2018/01/12 全球购物
美国最大婚纱连锁店运营商:David’s Bridal
2019/03/12 全球购物
商务英语专业毕业生自荐信
2013/11/05 职场文书
专营店会计助理岗位职责
2013/11/29 职场文书
竞聘演讲稿精彩开头和结尾
2014/05/14 职场文书
电力工程合作意向书
2015/05/11 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书
爱国之歌(8首)
2019/09/29 职场文书
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android
使用CSS实现音波加载效果
2023/05/07 HTML / CSS