微信小程序中单位rpx和rem的使用

 更新时间:2016年12月06日 08:33:03   投稿:daisy   我要评论
rpx是微信小程序新推出的一个单位,按官方的定义,rpx可以根据屏幕宽度进行自适应,在rpx出现之前,web页面的自适应布局已经有了多种解决方案,为什么微信还捣鼓出新的rpx单位?下面通过这篇文章来一起看看吧。

前言

这篇文章主要给大家讲解了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


正常情况下rem的使用

二、rpx的使用

1)小程序中rpx与px的转换

例如:设计稿750px宽度

那么恭喜您,你ps上量出宽度是多少,那么你就定义多少rpx,也就是 1px = 1rpx

例如:设计稿640px宽度

那么很遗憾,你需要转换一下 1px = 750/640 rpx


小程序中rpx和px的转换

2)小程序中如何继续使用rem

例如:设计稿750px宽度

此时1rem = (750/20)rpx = 37.5px

例如:设计稿640px宽度

此时1rem = (750/20)rpx = 32px


小程序中rem的使用

注意:无论设计稿多少,rem与rpx换算总是一样的,但是rem与px在小程序中换算是 rem = 设计稿宽/20,这一点与我们平时使用的rem完全不一样。

总结

小程序毕竟出来不久,以上言论有的属于官方文档,有的属于自己瞎捉摸,大家不能全信,要自己测了才知道。以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。

相关文章

  • 详解ES6 Promise对象then方法链式调用

    详解ES6 Promise对象then方法链式调用

    这篇文章主要介绍了详解ES6 Promise对象then方法链式调用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • js 获取时间间隔实现代码

    js 获取时间间隔实现代码

    获取时间间隔在日常使用还是比价频繁的,下面是具体的实现代码,需要的朋友可以参考下
    2014-05-05
  • CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库

    CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制

    实现类似于Photoshop控制面板输入文本数字的效果,所以名称叫做PsWheel。用于控制输入数字类型文本框实现鼠标滚轮上下滑动改变值,支持正整数、小数类型输入文本。
    2010-02-02
  • javascript从作用域链谈闭包

    javascript从作用域链谈闭包

    这篇文章主要从作用域链谈闭包,闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现,本文针对闭包进行学习,需要的朋友可以参考下
    2015-12-12
  • javascript针对不确定函数的执行方法

    javascript针对不确定函数的执行方法

    这篇文章主要介绍了javascript针对不确定函数的执行方法,实例分析了eval函数及符号属性两种执行方式,需要的朋友可以参考下
    2015-12-12
  • js+canvas实现验证码功能

    js+canvas实现验证码功能

    这篇文章主要为大家详细介绍了js+canvas实现验证码功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • 彻底弄懂 JavaScript 执行机制

    彻底弄懂 JavaScript 执行机制

    不论你是javascript新手还是老鸟,不论是面试求职,还是日常开发工作,我们经常会遇到这样的情况:给定的几行代码,我们需要知道其输出内容和顺序。接下来通过本文给大家分享 JavaScript 执行机制,感兴趣的朋友一起看看吧
    2018-10-10
  • 如何使用electron-builder及electron-updater给项目配置自动更新

    如何使用electron-builder及electron-updater给项目配置自动更新

    这篇文章主要介绍了如何使用electron-builder及electron-updater给项目配置自动更新,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • json格式的时间显示为正常年月日的方法

    json格式的时间显示为正常年月日的方法

    json格式的时间显示为:Date(1377828670436)需要转换为正常年月日,具体的实现思路及代码如下,感兴趣的朋友可以参考下
    2013-09-09
  • js实现九宫格拼图小游戏

    js实现九宫格拼图小游戏

    本文主要分享了js实现九宫格拼图小游戏的示例代码。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02

最新评论