微信小程序中单位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 相关文章推荐
在JavaScript中,为什么要尽可能使用局部变量?
Apr 06 Javascript
js jquery数组介绍
Jul 15 Javascript
JavaScrip调试技巧之断点调试
Oct 22 Javascript
JS生成一维码(条形码)功能示例
Jan 19 Javascript
基于JavaScript实现下拉列表左右移动代码
Feb 07 Javascript
原生JS实现圆环拖拽效果
Apr 07 Javascript
React-Native之定时器Timer的实现代码
Oct 04 Javascript
浅谈Vue内置component组件的应用场景
Mar 27 Javascript
js中split()方法得到的数组长度问题
Jul 19 Javascript
jquery实现的简单轮播图功能【适合新手】
Aug 17 jQuery
详解vue-property-decorator使用手册
Jul 29 Javascript
浅谈JavaScript中的“!!”作用
Aug 03 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 分页类 扩展代码
2009/06/11 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
2012/03/06 PHP
探讨各种PHP字符串函数的总结分析
2013/06/05 PHP
php模拟服务器实现autoindex效果的方法
2015/03/10 PHP
THINKPHP支持YAML配置文件的设置方法
2015/03/17 PHP
php两种无限分类方法实例
2015/04/21 PHP
PHP实现的限制IP投票程序IP来源分析
2016/05/04 PHP
jQuery中读取json文件示例代码
2013/05/10 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
JS实现带圆弧背景渐变效果的导航菜单代码
2015/10/13 Javascript
浅谈JavaScript中的对象及Promise对象的实现
2015/11/15 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
jQuery树控件zTree使用方法详解(一)
2017/02/28 Javascript
详解webpack打包vue时提取css
2017/05/26 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
vue中使用better-scroll实现滑动效果及注意事项
2018/11/15 Javascript
Python使用稀疏矩阵节省内存实例
2014/06/27 Python
Python实现简单截取中文字符串的方法
2015/06/15 Python
Django使用HttpResponse返回图片并显示的方法
2018/05/22 Python
Python Socket编程之多线程聊天室
2018/07/28 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
2019/07/16 Python
python如何实现从视频中提取每秒图片
2020/10/22 Python
Python zip函数打包元素实例解析
2019/12/11 Python
简单的命令查看安装的python版本号
2020/08/28 Python
用python制作个视频下载器
2021/02/01 Python
Bealls Florida百货商店:生活服饰、家居装饰和鞋子
2018/02/23 全球购物
FLOS美国官网:意大利高级照明工艺的传奇
2018/08/07 全球购物
如何整合JQuery和Prototype
2014/01/31 面试题
信息专业学生学习的自我评价
2014/02/17 职场文书
少年犯观后感
2015/06/11 职场文书
新闻通讯稿模板
2015/07/22 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书
MySQL索引篇之千万级数据实战测试
2021/04/05 MySQL
OpenCV-Python实现油画效果的实例
2021/06/08 Python
Vue项目打包、合并及压缩优化网页响应速度
2021/07/07 Vue.js