小程序推薦使用的長度單位是rpx,看看官方說明:
rpx(responsive pixel): 可以根據(jù)屏幕寬度進行自適應拇泣。
首先提出幾個疑問:
1.為什么模擬器下ip6的分辨率是375,而設計圖一般會給750狡蝶,所以設計圖上“100px”的長度開發(fā)者要寫成“50px”?
2.為什么ip 3Gs和ip 4/4s的屏幕都是3.5寸,但4/4s的屏幕看起來更清晰蚓峦?
3.ip6 Plus 屏幕看起來會比ip6/ip6s更清晰嗎?為什么济锄?
4.小程序是如何做不同分辨率設備的自適應的枫匾?
先要清楚的概念:
- pt:邏輯分辨率。pt的大小與屏幕的尺寸有關拟淮,可以簡單理解為長度單位;
- px:物理分辨率谴忧。和屏幕尺寸無關很泊〗浅妫可以簡單理解為像素點;
- pt與px的關系:1個pt對應幾個px委造,既每個單位長度里有幾個像素點戳鹅。一個pt可以由1個或多個px構成;
- ip6下昏兆,1個pt有2個px構成(375 x 667 pt; 750 x 1334 px)枫虏;
- Render屏:又稱為視網(wǎng)膜屏,意思是屏幕的1個單位的像素密度已經(jīng)達到人眼能分辨的極限爬虱,如果在該單位下再增加像素隶债,人類視覺上并不會覺得更加清晰(1個單位的像素密度為2px (@2x));
- 通常稱ip 3GS稱為非Render屏跑筝,4/4s(或以上)稱為Render屏死讹;
- 我們所說的屏幕尺寸并不是指長或寬,而是屏幕的對角線
移動端分辨率解析:
我們經(jīng)常會看到一樣移動設備分辨率的對比圖曲梗,如下
從圖中可以看到赞警,Render是px與pt的倍數(shù)關系,既一個pt下有多少個px虏两。
1.解答問題1:為什么4比3GS清晰?
圖中可以看到愧旦,3GS和4的屏幕一樣大,都是3.5寸(既邏輯分辨率pt都是320x480),但是物理分辨率px卻不同(看圖)定罢,他們的關系是:
在3GS中笤虫,1個單位的pt中有1個px,所以Reader為1倍(既@1x)
在4/4s中引颈,1個單位的pt中由2個px耕皮,所以Reader為2倍(既@2x)
2.解答問題2:6Plus不會比6/6s更清晰。
由圖可知蝙场,6Plus的Reader為3倍凌停,既1個單位中有3個像素點,6/6s位2倍售滤,既1個單位中有2個像素點(1pt = 2px))罚拟,已經(jīng)達到了人眼極限,所以看起來6Plus并不會更清晰完箩。
3.解答問題4:小程序是如何做不同分辨率設備的自適應的赐俗?
官方文檔上說
rpx(responsive pixel): 可以根據(jù)屏幕寬度進行自適應。規(guī)定屏幕寬為750rpx弊知。如在 iPhone6 上阻逮,屏幕寬度為375px,共有750個物理像素秩彤,則750rpx = 375px = 750物理像素叔扼,1rpx = 0.5px = 1物理像素事哭。
4.解答問題3:為什么模擬器下ip6的分辨率是375,而設計圖一般會給750瓜富?
375指的是邏輯分辨率鳍咱,小程序顯示的是邏輯分辨率,即375pt与柑,
750指的是物理分辨率谤辜,設計師給的一般都是物理分辨率,750px价捧,
根據(jù):
在ip6下1rpx=0.5px(小程序的開發(fā)設計原則)
和在ip6下Reader為2倍即1pt=2px(由上圖可知)
可知:
1pt = 2px = 2rpx
所以:
375pt = 750px丑念,而750px=375rpx,所以設計稿的750px在小程序開發(fā)時對于的單位是375rpx(即1rpx=0.5px)
總結:
在ip6下1rpx = 0.5px = 1物理像素干旧,不同設備分辨率下小程序會對rpx單位自動轉換渠欺。
開發(fā)微信小程序時設計師可以用 iPhone6 作為視覺稿的標準。
所以最后是:
以ip6作為標準的設計稿時(750x1334 px)椎眯,在開發(fā)小程序時設計稿的1px
可以寫成0.5px
或1rpx
挠将。
參考鏈接:https://www.zhihu.com/question/19625584