rpx和rem

 一、  rpx:全称“response pixel”,即响应式的px,rpx单位是微信小程序中css的尺寸单位,它可以根据屏幕宽度进行自适应。如在iphone6上,屏幕宽度375px,共有750个物理像素,则750rpx = 375px = 750物理像素,即1rpx = 0.5px = 1物理像素。

        设备                            rpx换算px(屏幕宽度/750)                    px换算rpx(750/屏幕宽度)

        iphone5                        1rpx = 0.42rpx                                    1px = 2.34rpx

        iphone6                        1rpx = 0.5px                                        1px = 2rpx

        iphone6s                      1rpx = 0.552px                                     1px = 1.81rpx

开发微信小程序时,设计师一般用iphone6作为视觉稿的标准。我们设计稿使用设备宽度为750px,等比例换算成rpx,这样的话,设计图量出来的尺寸是多少px就是多少rpx,至于在不同的设备上实际上要换算成多少个rpx就交给小程序自己换算。

 二、   rem:是相对于根元素的字体大小的单位,常用于做移动端自适应布局。

一般浏览器不设字体大小的情况下默认为16px,通常认为1rem = 16px,可以根据屏幕宽度大小去设置字体大小,可写js代码如下:

            let htmlWidth = document.documentElement.clientWidth || document.body.clientWidth

            let  htmlEle = document.getElementsByTagName('html')[0]

            htmlEle.style.fontSize  = htmlWidth / 10 + 'px';

或者使用多媒体查询去设置html字体大小,如

            @media screen and (max-width:320px){html{font-size:20px;}}

            @media screen and (min-width:321px) and (max-width:480px){html{font-size:24px;}}

            ......

我们在开发过程中可以借助于scss,自定义转换函数,在.scss文件中写转换函数,如:

             @function px2rem($px){

                        $rem: 37.5px                        // 基准值 (屏幕宽度/ 10 或者 屏幕宽度/20 ...)

                        @return ($px / $rem) + rem

             }

            .header {

                    height: px2rem(800px)

            }


            







        

        

你可能感兴趣的:(rpx和rem)