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判断复选框是否勾选的原理及示例
May 21 Javascript
php,js,css字符串截取的办法集锦
Sep 26 Javascript
AngularJS学习笔记之TodoMVC的分析
Feb 22 Javascript
window.location.hash知识汇总
Nov 09 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
Nov 25 Javascript
jQuery基于ajax操作json数据简单示例
Jan 05 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
Feb 19 Javascript
深入理解Node中的buffer模块
Jun 03 Javascript
Vue-路由导航菜单栏的高亮设置方法
Mar 17 Javascript
vue-cli3跨域配置的简单方法
Sep 06 Javascript
查找Vue中下标的操作(some和findindex)
Aug 12 Javascript
Vue监视数据的原理详解
Feb 24 Vue.js
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
php类常量的使用详解
2013/06/08 PHP
PHP解耦的三重境界(浅谈服务容器)
2017/03/13 PHP
PHP7新功能总结
2019/04/14 PHP
写js时遇到的一些小问题
2010/12/06 Javascript
JS控件的生命周期介绍
2012/10/22 Javascript
javascript实现表单提交后,提交按钮不可用的方法
2015/04/18 Javascript
javascript实现加载xml文件的方法
2015/11/24 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
2016/01/08 Javascript
Javascript中的几种继承方式对比分析
2016/03/22 Javascript
JS获取及验证开始结束日期的方法
2016/08/20 Javascript
jquery层级选择器的实现(匹配后代元素div)
2016/09/05 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
JS遍历对象属性的方法示例
2017/01/10 Javascript
JS数组去重(4种方法)
2017/03/27 Javascript
Vue.js列表渲染绑定jQuery插件的正确姿势
2017/06/29 jQuery
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
2018/03/06 Javascript
微信小程序间使用navigator跳转传值问题实例分析
2020/03/27 Javascript
[01:58]2018DOTA2亚洲邀请赛趣味视频——交流
2018/04/03 DOTA
让python的Cookie.py模块支持冒号做key的方法
2010/12/28 Python
python下MySQLdb用法实例分析
2015/06/08 Python
python getopt详解及简单实例
2016/12/30 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
Python如何使用OS模块调用cmd
2020/02/27 Python
python 三种方法提取pdf中的图片
2021/02/07 Python
钉钉企业内部H5微应用开发详解
2020/05/12 HTML / CSS
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
中英文自我评价常用句型
2013/12/19 职场文书
2014年学校领导班子对照检查材料
2014/09/19 职场文书
普通党员四风问题对照检查材料
2014/09/27 职场文书
2014年团支部工作总结
2014/11/17 职场文书
2015年高校图书馆工作总结
2015/04/30 职场文书
小学生表扬稿范文
2015/05/05 职场文书
Vue3 Composition API的使用简介
2021/03/29 Vue.js
windows11怎么查看wifi密码? win11查看wifi密码的技巧
2021/11/21 数码科技