這個網站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