1. 程式人生 > >移動web開發之像素和DPR

移動web開發之像素和DPR

javascript element 英語單詞 計算機 web開發

定義

  像素,又稱畫素,是圖像顯示的基本單位,譯自英文“pixel”,pix是英語單詞picture的常用簡寫,加上英語單詞“元素”element,就得到pixel,故“像素”表示“圖像元素”之意,有時亦被稱為pel(picture element)

  像素是網頁布局的基礎。一個像素就是計算機能夠顯示一種特定顏色的最小區域。當設備尺寸相同但像素變得更密集時,屏幕能顯示的畫面的過渡更細致,網站看起來更明快。

  //ppi是指屏幕上每英寸可以顯示的像素點的數量,即屏幕像素密度

技術分享

分類

  實際上像素分為兩種:設備像素和CSS像素

  1、設備像素(device independent pixels): 設備屏幕的物理像素,任何設備的物理像素的數量都是固定的

  2、CSS像素(CSS pixels): 又稱為邏輯像素,是為web開發者創造的,在CSS和javascript中使用的一個抽象的層

  每一個CSS聲明和幾乎所有的javascript屬性都使用CSS像素,因此實際上從來用不上設備像素 ,唯一的例外是screen.width/height

//我們通過CSS和javascript代碼設置的像素都是邏輯像素
width:300px;
font-size:16px;

縮放

  在桌面端,css的1個像素往往都是對應著電腦屏幕的1個物理像素。

  //一個CSS像素完全覆蓋了一個設備像素 

技術分享 

  而在手機端,由於屏幕尺寸的限制,縮放是經常性的操作。

  //設備像素(深藍色背景)、CSS像素(半透明背景)
  //左圖表示當用戶進行縮小操作時,一個設備像素覆蓋了多個CSS像素
  //右圖表示當用戶進行放大操作時,一個CSS像素覆蓋了多個設備像素

技術分享技術分享

  不論我們進行縮小或放大操作,元素設置的CSS像素(如width:300px)是始終不變的,而一個CSS像素對應多少個設備像素是根據當前的縮放比例來決定的

DPR

  設備像素比DPR(devicePixelRatio)是默認縮放為100%的情況下,設備像素和CSS像素的比值

DPR = 設備像素 / CSS像素(某一方向上)

  在早先的移動設備中,並沒有DPR的概念。隨著技術的發展,移動設備的屏幕像素密度越來越高。從iphone4開始,蘋果公司推出了所謂的retina視網膜屏幕。之所以叫做視網膜屏幕,是因為屏幕的PPI(屏幕像素密度)太高,人的視網膜無法分辨出屏幕上的像素點。iphone4的分辨率提高了一倍,但屏幕尺寸卻沒有變化,這意味著同樣大小的屏幕上,像素多了一倍,於是DPR = 2

  實際上,此時的CSS像素對應著以後要提到的理想視口,其對應的javascript屬性是screen.width/screen.height

  而對於設備像素比DPR也有對應的javascript屬性window.devicePixelRatio

  以iphone5為例,iphone5的CSS像素為320px*568px,DPR是2,所以其設備像素為640px*1136px

    640(px) / 320(px)  = 2
    1136(px) / 568(px) = 2
    640(px)*1136(px) /  320(px)*568(px) = 4

技術分享


移動web開發之像素和DPR