微信小程序中单位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 相关文章推荐
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
Feb 25 Javascript
IE下双击checkbox反应延迟问题的解决方法
Mar 27 Javascript
jQuery学习笔记之基础中的基础
Jan 19 Javascript
javascript的变量、传值、传址、参数之间关系
Jul 26 Javascript
JQuery ztree 异步加载实例讲解
Feb 25 Javascript
AngularJS中$apply方法和$watch方法用法总结
Dec 13 Javascript
js实现获取鼠标当前的位置
Dec 14 Javascript
vue单文件组件lint error自动fix与styleLint报错自动fix详解
Jan 08 Javascript
Vue 事件处理操作实例详解
Mar 05 Javascript
原生js实现的移动端可拖动进度条插件功能详解
Aug 15 Javascript
vue路由守卫,限制前端页面访问权限的例子
Nov 11 Javascript
vue 数据双向绑定的实现方法
Mar 04 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
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
JavaScript调用Activex控件的事件的实现方法
2010/04/11 Javascript
使用基于jquery的gamequery插件做JS乒乓球游戏
2011/07/31 Javascript
使用Javascript接收get传递的值的代码
2011/11/30 Javascript
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
解析瀑布流布局:JS+绝对定位的实现
2013/05/08 Javascript
javascript通过navigator.userAgent识别各种浏览器
2013/10/25 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
jQuery+CSS3折叠卡片式下拉列表框实现效果
2015/11/02 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形菜单
2015/11/30 Javascript
js实现遍历含有input的table实例
2015/12/07 Javascript
AngularJS使用ng-options指令实现下拉框
2016/08/23 Javascript
Nodejs+Socket.io实现通讯实例代码
2017/02/13 NodeJs
JavaScript之Date_动力节点Java学院整理
2017/06/28 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
2017/09/05 Javascript
js截取字符串功能的实现方法
2017/09/27 Javascript
JavaScript设计模式之构造器模式(生成器模式)定义与用法实例分析
2018/07/26 Javascript
微信小程序template模板与component组件的区别和使用详解
2019/05/22 Javascript
详解Nuxt.js中使用Element-UI填坑
2019/09/06 Javascript
[00:32]2018DOTA2亚洲邀请赛Liquid出场
2018/04/03 DOTA
Python 自动刷博客浏览量实例代码
2017/06/14 Python
python 全局变量的import机制介绍
2017/09/07 Python
python 实现A*算法的示例代码
2018/08/13 Python
pywinauto自动化操作记事本
2019/08/26 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
python 追踪except信息方式
2020/04/25 Python
matplotlib grid()设置网格线外观的实现
2021/02/22 Python
Css3圆角边框制作代码
2015/11/18 HTML / CSS
英国排名第一的LED灯泡网站:LED Bulbs
2019/09/03 全球购物
超市后勤自我鉴定
2014/01/17 职场文书
淘宝客服专员岗位职责
2014/04/11 职场文书
团队激励口号
2014/06/06 职场文书
教师师德师风整改措施
2014/10/24 职场文书
优化经济发展环境工作总结
2015/08/11 职场文书
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python