微信小程序中单位rpx和rem的使用


Posted in Javascript onDecember 06, 2016

前言

这篇文章主要给大家讲解了rpx和rem应用于微信小程序,如果你还没有入门,建议先从下面看起

     微信小程序官方文档

     >web app变革之rem

     >rpx单位官方文档

     >rpx单位基础介绍

如果看完上面几篇文章,我们开始进入正题吧~~

一、rem的使用

1) js中导入下面这段代码

(function (doc, win) {
 var docEl = doc.documentElement,
 resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
 recalc = function () {
 var clientWidth = docEl.clientWidth;
 if (!clientWidth) return;
 docEl.style.fontSize = 20 * (clientWidth / 320) + 'px';
 };

 if (!doc.addEventListener) return;
 win.addEventListener(resizeEvt, recalc, false);
 doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window);

2) 根据设计稿宽度算出rem和px直接的转换公式

例如:

640px的设计稿,转换公式就是按照上面js中这句而来【docEl.style.fontSize = 20 * (clientWidth / 320) + 'px'】,最终 1rem = 20 x 640/320 + 'px' = 40px;

3)根据设计稿按照1rem = 40px 对着各个元素进行单位转换

例如:

我们测量一个元素宽度是400px,那么最终css中这样写 width:400/40 = 10rem

微信小程序中单位rpx和rem的使用
正常情况下rem的使用

二、rpx的使用

1)小程序中rpx与px的转换

例如:设计稿750px宽度

那么恭喜您,你ps上量出宽度是多少,那么你就定义多少rpx,也就是 1px = 1rpx

例如:设计稿640px宽度

那么很遗憾,你需要转换一下 1px = 750/640 rpx

微信小程序中单位rpx和rem的使用
小程序中rpx和px的转换

2)小程序中如何继续使用rem

例如:设计稿750px宽度

此时1rem = (750/20)rpx = 37.5px

例如:设计稿640px宽度

此时1rem = (750/20)rpx = 32px

微信小程序中单位rpx和rem的使用
小程序中rem的使用

注意:无论设计稿多少,rem与rpx换算总是一样的,但是rem与px在小程序中换算是 rem = 设计稿宽/20,这一点与我们平时使用的rem完全不一样。

总结

小程序毕竟出来不久,以上言论有的属于官方文档,有的属于自己瞎捉摸,大家不能全信,要自己测了才知道。以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
跨浏览器的设置innerHTML方法
Sep 18 Javascript
JavaScript 函数replace深入了解
Mar 14 Javascript
鼠标移到导航当前位置的LI变色处于选中状态
Aug 23 Javascript
探究JavaScript函数式编程的乐趣
Dec 14 Javascript
Angularjs实现多个页面共享数据的方式
Mar 29 Javascript
js验证框架之RealyEasy验证详解
Jun 08 Javascript
返回函数的JavaScript函数
Jun 14 Javascript
解决低版本的浏览器不支持es6的import问题
Mar 09 Javascript
Vue.js点击切换按钮改变内容的实例讲解
Aug 22 Javascript
element的el-table中记录滚动条位置的示例代码
Nov 06 Javascript
React 条件渲染最佳实践小结(7种)
Sep 27 Javascript
vue在图片上传的时候压缩图片
Nov 18 Vue.js
JavaScript定时器实现的原理分析
Dec 06 #Javascript
原生js实现弹出层登录拖拽功能
Dec 05 #Javascript
详解Vue.js——60分钟组件快速入门(上篇)
Dec 05 #Javascript
原生js编写基于面向对象的分页组件
Dec 05 #Javascript
8 行 Node.js 代码实现代理服务器
Dec 05 #Javascript
浅谈Node.js:Buffer模块
Dec 05 #Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
Dec 05 #Javascript
You might like
php检查字符串中是否包含7位GSM字符的方法
2015/03/17 PHP
PHP使用XMLWriter读写xml文件操作详解
2018/07/31 PHP
Thinkphp5框架实现获取数据库数据到视图的方法
2019/08/14 PHP
PHP实现新型冠状病毒疫情实时图的实例
2020/02/04 PHP
js每次Title显示不同的名言
2008/09/25 Javascript
JavaScript等比例缩放图片控制超出范围的图片
2013/08/06 Javascript
JS小功能(offsetLeft实现图片滚动效果)实例代码
2013/11/28 Javascript
JQuery中DOM加载与事件执行实例分析
2015/06/13 Javascript
使用AngularJS对路由进行安全性处理的方法
2015/06/18 Javascript
js实现表单检测及表单提示的方法
2015/08/14 Javascript
jQuery实现简单隔行变色的方法
2016/02/20 Javascript
使用BootStrap实现用户登录界面UI
2016/08/10 Javascript
JQuery实现动态操作表格
2017/01/11 Javascript
完美实现js焦点轮播效果(一)
2017/03/07 Javascript
Vuex之理解Getters的用法实例
2017/04/19 Javascript
详解Vue-cli代理解决跨域问题
2017/09/27 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
2017/12/14 Javascript
JS数组方法slice()用法实例分析
2020/01/18 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
js 将多个对象合并成一个对象 assign方法的实现
2020/09/24 Javascript
[46:03]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
2017/07/25 Python
Django rest framework基本介绍与代码示例
2018/01/26 Python
Python常见字典内建函数用法示例
2018/05/14 Python
对python3中, print横向输出的方法详解
2019/01/28 Python
python实现抠图给证件照换背景源码
2019/08/20 Python
新加坡时尚网上购物:Zalora新加坡
2016/07/26 全球购物
Nice Kicks网上商店:ShopNiceKicks.com
2018/12/25 全球购物
.NET面试题:什么是反射
2016/09/30 面试题
舞蹈教育学专业求职信
2014/06/29 职场文书
信用卡工作证明模板
2014/09/14 职场文书
2014年“向国旗敬礼”网上签名寄语活动方案
2014/09/27 职场文书
电气工程师岗位职责
2015/02/12 职场文书
会计岗位职责范本
2015/04/02 职场文书
Java基础-封装和继承
2021/07/02 Java/Android