微信小程序中单位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 相关文章推荐
Prototype使用指南之dom.js
Jan 10 Javascript
JQuery select控件的相关操作实现代码
Sep 14 Javascript
Javascript页面添加到收藏夹的简单方法
Aug 07 Javascript
js定时器怎么写?就是在特定时间执行某段程序
Oct 11 Javascript
解决Extjs4中form表单提交后无法进入success函数问题
Nov 26 Javascript
JS实现动态生成表格并提交表格数据向后端
Nov 25 Javascript
JavaScript数据绑定实现一个简单的 MVVM 库
Apr 08 Javascript
Bootstrap选项卡学习笔记分享
Feb 13 Javascript
详解angular笔记路由之angular-router
Sep 12 Javascript
layui 表格的属性的显示转换方法
Aug 14 Javascript
微信小程序订阅消息(java后端实现)开发
Jun 01 Javascript
JS实现多选框的操作
Jun 24 Javascript
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写入WRITE编码为UTF8的文件的实现代码
2008/07/07 PHP
php 仿Comsenz安装效果代码打包提供下载
2010/05/09 PHP
php实现遍历多维数组的方法
2015/11/25 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
2016/06/05 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
Extjs学习笔记之二 初识Extjs之Form
2010/01/07 Javascript
jQuery右键菜单contextMenu使用实例
2011/09/28 Javascript
关于递归运算的顺序测试代码
2011/11/30 Javascript
jQuery随机切换图片的小例子
2013/04/18 Javascript
jquery实现动态菜单的实例代码
2013/11/28 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
使用javascript做的一个随机点名程序
2014/02/13 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
2015/09/08 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
2015/10/24 Javascript
jQuery 3 中的新增功能汇总介绍
2016/06/12 Javascript
vue将对象新增的属性添加到检测序列的方法
2018/02/24 Javascript
详解Vue.js v-for不支持IE9的解决方法
2018/12/29 Javascript
Layui点击图片弹框预览的实现方法
2019/09/16 Javascript
微信小程序实现多行文字超出部分省略号显示功能
2019/10/23 Javascript
跟老齐学Python之变量和参数
2014/10/10 Python
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
python实现发送和获取手机短信验证码
2016/01/15 Python
python实现汉诺塔方法汇总
2016/07/25 Python
Python实现的简单dns查询功能示例
2017/05/24 Python
Python基于matplotlib实现绘制三维图形功能示例
2018/01/18 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
eclipse创建python项目步骤详解
2019/05/10 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
python脚本和网页有何区别
2020/07/02 Python
详解HTML5 data-* 自定义属性
2018/01/24 HTML / CSS
机械设计毕业生自荐信
2014/02/02 职场文书
开会迟到检讨书
2014/02/03 职场文书
六一儿童节演讲稿
2014/05/23 职场文书
机械机修工岗位职责
2014/08/03 职场文书
2015年父亲节寄语
2015/03/23 职场文书
Django rest framework如何自定义用户表
2021/06/09 Python