微信小程序中单位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实现简单的Map示例介绍
Dec 23 Javascript
JavaScript实现找出数组中最长的连续数字序列
Sep 03 Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
Aug 03 Javascript
分享15个大家都熟知的jquery小技巧
Dec 02 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
Apr 29 Javascript
深入浅析JavaScript的API设计原则
Jun 14 Javascript
node.js报错:Cannot find module 'ejs'的解决办法
Dec 14 Javascript
Bootstrap多级菜单的实现代码
May 23 Javascript
原生JS实现小小的音乐播放器
Oct 16 Javascript
从setTimeout看js函数执行过程
Dec 19 Javascript
ES6 Promise对象的应用实例分析
Jun 27 Javascript
vue-quill-editor的使用及个性化定制操作
Aug 04 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
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
2013/04/26 PHP
PHP中检查isset()和!empty()函数的必要性
2019/02/13 PHP
PHP应用跨时区功能的实现方法
2019/03/21 PHP
asp(javascript)全角半角转换代码 dbc2sbc
2009/08/06 Javascript
Javascript 网页黑白效果实现代码(兼容IE/FF等)
2010/04/23 Javascript
Jquery.TreeView结合ASP.Net和数据库生成菜单导航条
2010/08/27 Javascript
javascript函数作用域学习示例(js作用域)
2014/01/13 Javascript
jQuery插件分享之分页插件jqPagination
2014/06/06 Javascript
jQuery调取jSon数据并展示的方法
2015/01/29 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
JS实现仿QQ效果的三级竖向菜单
2015/09/25 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
React实现双向绑定示例代码
2016/09/19 Javascript
Angular.js之作用域scope'@','=','&'实例详解
2017/02/28 Javascript
原生JS实现不断变化的标签
2017/05/22 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
2018/05/16 Javascript
vue.js 实现点击展开收起动画效果
2018/07/07 Javascript
在vue中使用防抖函数组件操作
2020/07/26 Javascript
python生成二维码的实例详解
2017/10/29 Python
python多线程并发实例及其优化
2019/06/27 Python
详解java调用python的几种用法(看这篇就够了)
2020/12/10 Python
一站式跨境收款解决方案:Payoneer(派安盈)
2018/09/06 全球购物
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
一些PHP的面试题
2015/05/06 面试题
应届毕业生的自我鉴定
2013/11/13 职场文书
简历中个人自我评价范文
2013/12/26 职场文书
电气个人求职信范文
2014/02/04 职场文书
精彩的广告词
2014/03/19 职场文书
教师节促销方案
2014/03/22 职场文书
2014年化验室工作总结
2014/11/21 职场文书
巾帼标兵事迹材料
2014/12/26 职场文书
小学语文复习计划
2015/01/19 职场文书
2015年实习生工作总结报告
2015/04/28 职场文书
企业安全生产检查制度
2015/08/06 职场文书
商业计划书格式、范文
2019/03/21 职场文书
浅析Redis Sentinel 与 Redis Cluster
2021/06/24 Redis