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 相关文章推荐
一个js写的日历(代码部分网摘)
Sep 20 Javascript
jQuery 跨域访问问题解决方法
Dec 02 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
Jun 27 Javascript
自己写的Javascript计算时间差函数
Oct 28 Javascript
Extjs4中Form的使用之本地hiddenfield
Nov 26 Javascript
JS获取图片lowsrc属性的方法
Apr 01 Javascript
jQuery通过Ajax返回JSON数据
Apr 28 Javascript
vue实现密码显示隐藏切换功能
Feb 23 Javascript
Js经典案例的实例代码
May 10 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
Apr 17 Javascript
vue项目打包之开发环境和部署环境的实现
Apr 23 Javascript
JQuery插件tablesorter表格排序实现过程解析
May 28 jQuery
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
咖啡磨器 如何选购一台适合家用的意式磨豆机
2021/03/05 新手入门
PHP iconv 函数转gb2312的bug解决方法
2009/10/11 PHP
浅析PKI加密解密 OpenSSL
2013/07/01 PHP
实用javaScript技术-屏蔽类
2006/08/15 Javascript
如何设置iframe高度自适应在跨域情况下的可用方法
2013/09/06 Javascript
如何用javascript计算文本框还能输入多少个字符
2015/07/29 Javascript
基于jQuery实现以手风琴方式展开和折叠导航菜单
2016/01/28 Javascript
轻松搞定jQuery.noConflict()
2016/02/15 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
利用Angularjs和Bootstrap前端开发案例实战
2016/08/27 Javascript
javascript 四十条常用技巧大全
2016/09/09 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
2016/09/26 Javascript
vuex实现简易计数器
2016/10/27 Javascript
基于JavaScript实现右键菜单和拖拽功能
2016/11/28 Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
2017/02/09 Javascript
基于JavaScript实现无限加载瀑布流
2017/07/21 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
[01:09:01]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第一场 10.28
2020/10/28 DOTA
从零开始学Python第八周:详解网络编程基础(socket)
2016/12/14 Python
浅谈终端直接执行py文件,不需要python命令
2017/01/23 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
2017/03/20 Python
Python3中lambda表达式与函数式编程讲解
2019/01/14 Python
python使用装饰器作日志处理的方法
2019/07/11 Python
pytorch之ImageFolder使用详解
2020/01/06 Python
如何使用localstorage代替cookie实现跨域共享数据问题
2018/04/18 HTML / CSS
香港现代设计家具品牌:Ziinlife Furniture
2018/11/13 全球购物
大宝sod蜜广告词
2014/03/21 职场文书
小学生常见病防治方案
2014/06/06 职场文书
大学生见习期满自我鉴定
2014/09/13 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
布达拉宫导游词
2015/02/02 职场文书
2016秋季小学开学寄语
2015/12/03 职场文书
2016年基层党支部书记公开承诺书
2016/03/25 职场文书
详解Python+OpenCV进行基础的图像操作
2022/02/15 Python
Python代码实现双链表
2022/05/25 Python