移动端使用rem原理

493 阅读1分钟

这个网站www.w3cplus.com/mobile/lib-…说的其实已经很详细了,再此基础上做进一步的分析

以IP6为例


独立像素其实就是视窗,与设备密度无关,设备像素就是物理像素,与dpr有关,Phone6的设备宽度和高度为375pt * 667pt,而其dpr为2,设备像素(物理像素)为750pt * 1334pt。

通过引入flexible.js,会在html根目录加上font-size和dpr


如果一张UI图是750px,则1rem=75px,基准为75来计算rem

当图中一个UI块大小为100px * 100px,通过postcss或者px2rem转换成rem时:

100/75 = 1.33333333rem

所以通过计算100px * 100px => 1.33333333rem * 1.33333333rem

在浏览器中,通过不同的dpr得到的UI块大小其实不一样

1、dpr=1时,font-size=37.5px 所以1.33333333rem*35.7=49.9999999px

所以在dpr=1的设备中显示出的UI块的最终大小是

49.9999999px * 49.9999999px

2、同样 dpr = 2时:1.33333333rem*75=100px

即 100px * 100px

3、同样 dpr = 3时:1.33333333rem*112.5=150px

即 150px * 150px