微信小程序中单位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 RadioButtonList获取选中值
Apr 09 Javascript
Javascript 网页水印(非图片水印)实现代码
Mar 01 Javascript
js判断一个元素是否为另一个元素的子元素的代码
Mar 21 Javascript
JavaScript实现动态创建CSS样式规则方案
Sep 06 Javascript
jquery+CSS3实现3D拖拽相册效果
Jul 18 Javascript
plupload+artdialog实现多平台上传文件
Jul 19 Javascript
JS动态生成年份和月份实例代码
Feb 04 Javascript
使用Angular自定义字段校验指令的方法示例
Feb 01 Javascript
Vue 动态添加路由及生成菜单的方法示例
Jun 20 Javascript
解决vue-router 二级导航默认选中某一选项的问题
Nov 01 Javascript
js+canvas绘制图形验证码
Sep 21 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
Nov 19 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
如何使用PHP中的字符串函数
2006/11/24 PHP
php 使用file_get_contents读取大文件的方法
2014/11/13 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
PHP判断上传文件类型的解决办法
2015/10/20 PHP
PHP编程入门的基本语法知识点总结
2016/01/26 PHP
php 如何获取文件的后缀名
2016/06/05 PHP
php PDO实现的事务回滚示例
2017/03/23 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
2017/06/09 PHP
js判断鼠标同时离开两个div的思路及代码
2013/05/31 Javascript
用JavaScript实现页面重定向功能的教程
2015/06/04 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
2017/01/03 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
2017/01/19 Javascript
原生js仿浏览器滚动条效果
2017/03/02 Javascript
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
AngularJS 前台分页实现的示例代码
2018/06/07 Javascript
vue中使用gojs/jointjs的示例代码
2018/08/24 Javascript
vue实现滑动到底部加载更多效果
2020/10/27 Javascript
javascript实现动态时钟的启动和停止
2020/07/29 Javascript
JavaScript实现简单进度条效果
2020/03/25 Javascript
把MySQL表结构映射为Python中的对象的教程
2015/04/07 Python
wxPython使用系统剪切板的方法
2015/06/16 Python
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
Python实现的读写json文件功能示例
2018/06/05 Python
python定时复制远程文件夹中所有文件
2019/04/30 Python
将keras的h5模型转换为tensorflow的pb模型操作
2020/05/25 Python
python实现自动清理重复文件
2020/08/24 Python
澳大利亚制造的羊皮靴:Original UGG Boots
2017/11/13 全球购物
怎么处理XML的中文问题
2015/03/26 面试题
敬老院活动总结
2014/04/28 职场文书
农业开发项目建议书
2014/05/16 职场文书
科技之星事迹材料
2014/06/02 职场文书
垃圾桶标语
2014/06/24 职场文书
酒店总经理岗位职责范本
2014/08/08 职场文书
2014年村官工作总结
2014/11/24 职场文书
复试通知单模板
2015/04/24 职场文书
Go 内联优化让程序员爱不释手
2022/06/21 Golang