微信小程序中单位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实现正方形颜色从下往上升的效果
Aug 04 Javascript
JS实现页面超时后自动跳转到登陆页面
Jan 19 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
Jun 20 Javascript
JavaScript实现页面定时刷新(定时器,meta)
Oct 12 Javascript
jQuery利用sort对DOM元素进行排序操作
Nov 07 Javascript
Angular表格神器ui-grid应用详解
Sep 29 Javascript
JavaScript变量声明var,let.const及区别浅析
Apr 23 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
Aug 06 Javascript
vue进入页面时滚动条始终在底部代码实例
Mar 26 Javascript
ES6知识点整理之Proxy的应用实例详解
Apr 16 Javascript
WebStorm无法正确识别Vue3组合式API的解决方案
Feb 18 Vue.js
JavaScript实现简单的音乐播放器
Aug 14 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中ob_start()函数的用法
2013/06/24 PHP
PHP设计模式之迭代器模式
2016/06/17 PHP
让你的PHP,APACHE,NGINX支持大文件上传
2021/03/09 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
23个Javascript弹出窗口特效整理
2011/02/25 Javascript
js完美的div拖拽实例代码
2014/01/22 Javascript
Javascript中的Array数组对象详谈
2014/03/03 Javascript
Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
2014/09/01 Javascript
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
详解使用jQuery.i18n.properties实现js国际化
2018/05/04 jQuery
JavaScript简单实现关键字文本搜索高亮显示功能示例
2018/07/25 Javascript
vue 实现LED数字时钟效果(开箱即用)
2019/12/08 Javascript
简单了解常用的JavaScript 库
2020/07/16 Javascript
js实现带有动画的返回顶部
2020/08/09 Javascript
python 正则式使用心得
2009/05/07 Python
Python中的zip函数使用示例
2015/01/29 Python
NumPy 数学函数及代数运算的实现代码
2018/07/18 Python
python实现决策树分类(2)
2018/08/30 Python
python射线法判断一个点在图形区域内外
2019/06/28 Python
PyCharm无法引用自身项目解决方式
2020/02/12 Python
解决json中ensure_ascii=False的问题
2020/04/03 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
纯HTML5+CSS3制作生日蛋糕代码
2016/11/16 HTML / CSS
html5如何及时更新缓存文件(js、css或图片)
2013/06/24 HTML / CSS
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
退休感言
2014/01/28 职场文书
党员个人总结自评
2015/02/14 职场文书
计算机专业自荐信
2015/03/05 职场文书
简历自我评价模板
2015/03/11 职场文书
企业财务人员岗位职责
2015/04/14 职场文书
公司车辆维修管理制度
2015/08/05 职场文书
2016年感恩教师节校园广播稿
2015/12/18 职场文书
手把手教你制定暑期学习计划,让你度过充实的暑假
2019/08/22 职场文书
vue-router中hash模式与history模式的区别
2021/06/23 Vue.js
linux目录管理方法介绍
2022/06/01 Servers
Win11 Build 22000.829更新补丁KB5015882发布(附更新修复内容汇总)
2022/07/15 数码科技