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创建一个层当鼠标移动到层上面不消失效果
Dec 12 Javascript
动态读取JSON解析键值对的方法
Jun 03 Javascript
node.js中的http.request方法使用说明
Dec 14 Javascript
js实现鼠标触发图片抖动效果的方法
Feb 27 Javascript
JQuery中Text方法用法实例分析
May 18 Javascript
AspNet中使用JQuery boxy插件的确认框
May 20 Javascript
js实现tab切换效果实例
Sep 16 Javascript
js中 计算两个日期间的工作日的简单实例
Aug 08 Javascript
微信小程序之ES6与事项助手的功能实现
Nov 30 Javascript
微信JSSDK调用微信扫一扫功能的方法
Jul 25 Javascript
vue中keep-alive的用法及问题描述
May 15 Javascript
详解Vue中$props、$attrs和$listeners的使用方法
Feb 18 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网页游戏学习之Xnova(ogame)源码解读(十四)
2014/06/26 PHP
[原创]php逐行读取txt文件写入数组的方法
2015/07/02 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
PHP笛卡尔积实现原理及代码实例
2020/12/09 PHP
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
2011/03/28 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
详解maxlength属性在textarea里奇怪的表现
2015/12/27 Javascript
Jquery获取radio选中的值
2017/05/05 jQuery
vue上传图片到oss的方法示例(图片带有删除功能)
2018/09/27 Javascript
微信小程序实现蒙版弹窗效果
2018/11/01 Javascript
快速了解Node中的Stream流是什么
2019/02/13 Javascript
解决qrcode.js生成二维码时必须定义一个空div的问题
2020/07/09 Javascript
vue.js 解决v-model让select默认选中不生效的问题
2020/07/28 Javascript
Vue toFixed保留两位小数的3种方式
2020/10/23 Javascript
Python中操作文件之write()方法的使用教程
2015/05/25 Python
Python实现网络端口转发和重定向的方法
2016/09/19 Python
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
Python 多进程并发操作中进程池Pool的实例
2017/11/01 Python
Python中的defaultdict与__missing__()使用介绍
2018/02/03 Python
django 使用 PIL 压缩图片的例子
2019/08/16 Python
Python3 文章标题关键字提取的例子
2019/08/26 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
2019/10/28 Python
Python利用全连接神经网络求解MNIST问题详解
2020/01/14 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
五分钟带你搞懂python 迭代器与生成器
2020/08/30 Python
CSS3实现莲花绽放的动画效果
2020/11/06 HTML / CSS
材料物理专业个人求职信
2013/12/15 职场文书
集体婚礼证婚词
2014/01/13 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
2014年社区卫生工作总结
2014/12/18 职场文书
个人汇报材料范文
2014/12/30 职场文书
大学辅导员述职报告
2015/01/10 职场文书
银行保安拾金不昧表扬稿
2015/05/05 职场文书
《成长的天空》读后感3篇
2019/12/06 职场文书