標籤:javascript element 英語單詞 電腦 web開發
定義
像素,又稱畫素,是映像顯示的基本單位,譯自英文“pixel”,pix是英語單詞picture的常用簡寫,加上英語單詞“元素”element,就得到pixel,故“像素”表示“映像元素”之意,有時亦被稱為pel(picture element)
像素是網頁布局的基礎。一個像素就是電腦能夠顯示一種特定顏色的最小地區。當裝置尺寸相同但像素變得更密集時,螢幕能顯示的畫面的過渡更細緻,網站看起來更明快。
//ppi是指螢幕上每英寸可以顯示的像素點的數量,即螢幕像素密度
650) this.width=650;" src="http://images2015.cnblogs.com/blog/740839/201605/740839-20160515092318852-818619954.jpg" style="border:none;width:649.985px;margin-top:20px;margin-bottom:20px;" />
分類
實際上像素分為兩種:裝置像素和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像素完全覆蓋了一個裝置像素
650) this.width=650;" src="http://images2015.cnblogs.com/blog/740839/201605/740839-20160515102843711-1407435940.gif" style="border:none;margin-top:20px;margin-bottom:20px;" />
而在手機端,由於螢幕尺寸的限制,縮放是經常性的操作。
//裝置像素(深藍色背景)、CSS像素(半透明背景)
//左圖表示當使用者進行縮小操作時,一個裝置像素覆蓋了多個CSS像素
//右圖表示當使用者進行放大操作時,一個CSS像素覆蓋了多個裝置像素
| 650) this.width=650;" src="http://images2015.cnblogs.com/blog/740839/201605/740839-20160515103300602-1749012296.gif" style="border:none;margin-top:20px;margin-bottom:20px;width:342.857px;" /> |
650) this.width=650;" src="http://images2015.cnblogs.com/blog/740839/201605/740839-20160515103307508-1159608111.gif" style="border:none;margin-top:20px;margin-bottom:20px;width:343.81px;" /> |
不論我們進行縮小或放大操作,元素設定的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
650) this.width=650;" src="http://images2015.cnblogs.com/blog/740839/201605/740839-20160522182155669-1272722807.gif" style="border:none;width:649.985px;margin-top:20px;margin-bottom:20px;" />
移動web開發之像素和DPR