微信小程序中单位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实现一些常用软件的下载导航
Aug 03 Javascript
js单独获取一个checkbox看其是否被选中
Sep 22 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
Nov 08 Javascript
JavaScript获取文本框内选中文本的方法
Feb 20 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
May 19 Javascript
浅谈js中子页面父页面方法 变量相互调用
Aug 04 Javascript
详解React-Todos入门例子
Nov 08 Javascript
详解webpack require.ensure与require AMD的区别
Dec 13 Javascript
vue实现的微信机器人聊天功能案例【附源码下载】
Feb 18 Javascript
微信小程序的tab选项卡的实现效果
May 15 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
Oct 15 Javascript
这样回答继承可能面试官更满意
Dec 10 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
yii框架源码分析之创建controller代码
2011/06/28 PHP
PHP会话处理的10个函数
2015/08/11 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
2016/09/26 PHP
php语法检查的方法总结
2019/01/21 PHP
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
2011/09/19 Javascript
javascript删除字符串最后一个字符
2014/01/14 Javascript
JavaScript数组对象赋值用法实例
2015/08/04 Javascript
详解js中call与apply关键字的作用
2016/11/21 Javascript
JS 仿支付宝input文本输入框放大组件的实例
2017/11/14 Javascript
JS中图片压缩的方法小结
2017/11/14 Javascript
Javascript格式化并高亮xml字符串的方法及注意事项
2018/08/13 Javascript
新手必须知的Node.js 4个JavaScript基本概念
2018/09/16 Javascript
vue自定义指令的创建和使用方法实例分析
2018/12/04 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
vue.js 实现a标签href里添加参数
2019/11/12 Javascript
wxPython窗口的继承机制实例分析
2014/09/28 Python
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
Python数据结构之翻转链表
2017/02/25 Python
python文本数据处理学习笔记详解
2019/06/17 Python
如何分离django中的媒体、静态文件和网页
2019/11/12 Python
python判断无向图环是否存在的示例
2019/11/22 Python
python 如何利用argparse解析命令行参数
2020/09/11 Python
24个canvas基础知识小结
2014/12/17 HTML / CSS
Gucci法国官方网站:意大利奢侈品牌
2018/07/25 全球购物
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
俄罗斯建筑和装饰材料在线商店:Stroilandia
2020/07/25 全球购物
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
PHP面试题及答案二
2015/05/23 面试题
经济管理专业毕业生推荐信
2013/11/11 职场文书
医院护士专业个人的求职信
2013/12/09 职场文书
编辑找工作求职信范文
2013/12/16 职场文书
摘录式读书笔记
2015/07/01 职场文书
2016教师国培研修感言
2015/12/08 职场文书
2019新学期家长会工作计划
2019/08/21 职场文书
Python各协议下socket黏包问题原理
2022/04/12 Python