明確幾個概念:
物理像素:屏幕物理像素
屏幕像素密度ppi:pixels per inch,屏幕上每英寸能夠顯示的像素點的數量,即屏幕像素密度。順便一提,ppi就是dpi,只不過有文章裏說蘋果喜歡用ppi,dpi安卓喜歡用,emmmm,因此仍是用ppi吧。
ppi的計算:屏幕對角線的屏幕物理像素密度除以屏幕尺寸。html
以 iphone6 爲例子,屏幕是 1334*750,326ppi,屏幕4.7英寸前端
Math.sqrt(Math.pow(1334,2)+Math.pow(750,2)) / 4.7 ≈ 325
在移動設備開發裏面,屏幕適配也是須要考慮的一個問題,爲了在不一樣屏幕中統一設置的單位可以自適應,IOS開發推出了PT,Android中叫作DP/DiP(Device independent Pixel,設備無關像素),字體會用sp。這些單位都是相對單位,開發的時候數值是固定的,單位會自動隨屏幕的ppi改變px的倍數,標準是以160ppi的屏幕下1dp=1px,其餘按比例計算。比起前端開發真是方便太多了。ios
除了這些,還有:pc、sp、dpi、ldpi、mdpi、hdpi、xhdpi、xxhdpi...這些沒什麼特別須要記住的,須要的百度就查一下就好了,dpi前加其餘的其實都是dpi,只不過是不一樣屏幕分辨率下的不一樣表示。web
爲何有個邏輯分辨率和物理分辨率之分呢,主要是軟件開發的限制,ios 開發以 pt 爲單位,1pt 在 iphone 4 上是等於 2px,iphone 6p 上是 3px。因此若是設置了邏輯分辨率,開發就很方便,只須要寫一個單位值就能適配各類尺寸的屏幕。iphone
關於設備像素比,用 iPhone 作例子:
ide
上表清晰展現了歷代 iphone 的邏輯分辨率和物理分辨率關係。有個特殊的地方是 iphone 6p 的設備像素比,不是整數 3,即物理像素分辨率是 1080x1920 而不是 1242x2208,雖然獲取時 window.devicePixelRatio 依然是拿到 3 的,不過是近似等於 3,關於緣由能夠看下面連接的回答。字體
本文來源:JuFoFuidea
本文地址:http://www.cnblogs.com/JuFoFu/p/7719823.htmlcode
水平有限,錯誤歡迎指正,轉載請註明出處。htm
參考連接:
深刻了解viewport和px
http://tgideas.qq.com/webplat/info/news_version3/804/7104/7106/m5723/201509/376281.shtml
iPhone 6 Plus 的邏輯分辨率爲何是 414x736 ?
https://www.zhihu.com/question/25361043
邏輯分辨率和物理分辨率究竟是什麼呀?
https://www.zhihu.com/question/40506180?sort=created