移動端開發(fā)教程之像素的顯示問題匯總
最近在開發(fā)中,發(fā)現(xiàn)了移動端像素的一些問題,是之前一直沒注意過的,這篇文章主要給大家介紹了關于移動端開發(fā)教程之像素顯示問題的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。...
前言
相信在移動端開發(fā)的過程中大家都會發(fā)現(xiàn),移動端的顯示一般與桌面端的不一樣。比如在iPhone6上顯示一個1334x750像素大小塊狀元素,雖然在蘋果官網(wǎng)上iphone6標稱的屏幕像素密度是1334x750規(guī)格,但是我們卻發(fā)現(xiàn)這個1334x750像素大小的塊狀元素卻不能鋪滿整個屏幕。
那到底是為什么呢?下面從幾個方面來作探討。
像素密度(PPI)
PPI(Pixel Per Inch),即表示每英寸有多少像素,類似于人口密度和建筑密度,如下圖舉例了幾種PPI的表示。
以iphone6為例,一般像素密度的計算公式為: Math.sqrt(1366*1366 + 640*640)
但是要計算這個PPI,那么我們先要知道設備的屏幕上到底有多少個像素,也就是Pixel Per Inch 中的第一個Pixel。
設備像素(DP)&& 設備像素比(DPR)
設備像素(Device pixel),也稱物理像素(Physical pixel),也就是本文一開始提到iphone6的屏幕規(guī)格。像素密度中所指的像素就是設備像素,對于一般的顯示設備來說,一個像素對應著屏幕上的一個發(fā)光點,因此PPI也稱為DPI(dots per inch),但是這僅在顯示設備上才等價,比如在打印機上就不一樣了。
由于市面上每一臺手機的屏幕規(guī)格不一樣,有的是720P,有的是1080P,甚者是2K等等,這些設備的屏幕有些像素多,有些像素少,如果同樣顯示一個像素的話,則會出現(xiàn)像以下的情況:
越高PPI的屏幕,顯示一個像素點的面積就越小,一張由4x4個像素點組成的圖顯示在PPI為64的屏幕上,那么換到256PPI的屏幕上顯示則會縮小為原來大小的一半。
反過來,如果要在PPI為256的屏幕上顯示效果與PPI為64的屏幕一樣,那么得要把圖片放大2倍。
因此配有高清屏幕的手機,廠商為了其設備的可用性,即圖標和文字可以被正確識別和準確點擊,就必須保證各類素材在其設備上的顯示與標清設備一樣,而這個解決方法就是把所有尺寸都放大若干倍。這個放大比例就叫作設備像素比(Device Pixel Ratio, DPR),一般DPR對應著下面這個表:
ldpi | mdpi | hdpi | xhdpi | |
---|---|---|---|---|
ppi | 120 | 160 | 240 | 320 |
dpr | 0.75 | 1.0 | 1.5 | 2.0 |
因此高清設備上應該配有高清圖片顯示,不然圖片在高清設備上放大后沒有足夠的像素顯示其細節(jié),那么這張圖片就會變得看起來很模糊。
CSS像素
講了這么多概念,仿佛還是沒有很好地解釋文章開頭的問題。下面討論完CSS像素后估計大家會有一個比較清晰的概念。
我們通宵在寫CSS的時候會用到像素單位px,但是這個像素單位并不一直是與設備像素一一對應,也就是說在CSS中1px(像素)不是對應著設備屏幕中的一個像素點。為了與設備像素區(qū)別,CSS中所指的像素px我們一般稱為CSS像素。也就是說CSS像素是一個虛擬的、相對的單位。
例如在頁面上畫一個300px寬的塊元素,在一般的顯示器下它只會占屏幕的一部分,但如果我們手動地去放大頁面,很快這個塊狀元素也會充滿整個頁面。由此說明,一般情況下CSS像素與系統(tǒng)分辨率下的像素大小相等,即在標清設備中,一個CSS像素應該是與一個設備像素大小相等的。但是是高清設備或者用戶縮放的過程中,一個CSS像素也有可能等于多個設備像素。
舉另外一個例子,在移動原生應用開發(fā)中,如果必須以一個設備像素為單位進行開發(fā),那將會是一件非常痛苦的事,因為不是每一臺移動設備的系統(tǒng)分辨率都是對應著一個設備像素,有的是1:2,有的是1:2.46,正是因為有這種差異,在安卓開發(fā)中會有例如dp,dt這種單位(在iOS中會有pt單位),當我們給一個元素定義大小時,只需要給定一個dp值,系統(tǒng)將會根據(jù)這個值再與系統(tǒng)分辨率與設備像素的比值(即DPR)進行換算,最終計算出顯示在屏幕上的實際設備像素。
上面所指出的dp這種抽象單位稱為設備無關像素(device independent pixel)。當然CSS像素也屬于設備無關像素,我們在寫CSS像素的時候,不用關心一個CSS像素對應著多少個設備像素,系統(tǒng)會自動地根據(jù)DPR來幫我們換算好。我們要關心的只是如何保證網(wǎng)頁元素因為系統(tǒng)換算而導致被放大的時候下,還能清晰地展示在設備上。
視口(Viewport)
正常來說,在移動端打開一個頁面,如果瀏覽器先會以正常的比例來渲染頁面,然后再自動地設置一個比例來縮放頁面,目的是為了讓內(nèi)容更好地展示出來,即頁面內(nèi)容剛好鋪滿整個手機屏幕,當然如果頁面沒有禁止掉用戶縮放的話,你也可以用兩個手指把頁面縮放回原始的比例。這整個過程就是通過視口(viewport)來實現(xiàn)的,原始頁面渲染好后通過視口縮放使得與系統(tǒng)寬度一樣,從而可以完整地展示頁面。
(圖片來自tgideas團隊博客)
我們可以通過在content中添加inital-scale屬性來控制渲染時視窗的縮放比例,把它設置為1則無縮放。
我們也可以定義device-width屬性來控制viewport的寬度
一般在移動開發(fā)中我們會設置不允許用戶縮放,并把最大、最小縮放比設為1
總結(jié)(Summary)
通過連續(xù)幾天的翻閱資料與探索,終于完整地對移動開發(fā)最入門的地方有了準確的理解,之前也只是一直把meta里的代碼直接復制過來用就是了,一直沒去弄清楚,這次趁著有空并且手上剛好有相關的資料,一并整體地走一遍,最后記錄成此文檔,希望對日后甚至會對大家有幫助。
參與資料:
1.深入了解viewport和px
2.高性能響應式Web開發(fā)實戰(zhàn)
- 關于移動端小圖標模糊問題的解決方法教程
- 售價159元!小米有品上架電力貼移動電源:模塊化設計/無線
- 小米移動電源3高配版發(fā)布:可為筆記本電腦充電,售價199元
- 2018年全球?qū)拵c4G網(wǎng)速:中國10.9MB/s 移動最快
- 全球5G移動套餐資費出爐:最便宜的也要30元/G,人均月流量
- CSS去除移動端點擊時元素產(chǎn)生的背景色
- 售價99元!小米二合一移動電源(充電器)發(fā)布
- 移動親情網(wǎng)怎么辦理?中國移動全國親情網(wǎng)辦理方法和資費
- 三大運營商4G上傳、下載網(wǎng)速實測:電信、移動跟聯(lián)通差距
- 全球移動支付用戶數(shù)排名:微信支付6億用戶超越支付寶居
關于移動端小圖標模糊問題的解決方法教程
由于移動端的屏幕大小不一,所以我們在做移動端頁面的時候,在不同分辨率的手機屏幕下,手機端的圖片會顯示模糊不清,嚴重影響了用戶體驗,所以這篇文章主要給大家介紹了關于移動端小圖標模糊問題的解決方法,需要的朋友可以參考借鑒,下面來一起看看吧。...
售價159元!小米有品上架電力貼移動電源:模塊化設計/無線充電
1月4日,小米有品上架了一款銳靈電力貼無線移動電源,采用二合一模塊化設計,貼機隨行,小巧便攜,支持Qi無線充電,2600mAh電量。 本產(chǎn)品為有品第三方商品,由深圳銳靈新源電子科技有限公...
小米移動電源3高配版發(fā)布:可為筆記本電腦充電,售價199元
1月4日消息,小米天貓旗艦店發(fā)布預告,11日將發(fā)售小米新品小米移動電源3高配版,售價199元,可為筆記本電腦充電,支持大容量三口輸出。...
2018年全球?qū)拵c4G網(wǎng)速:中國10.9MB/s 移動最快
互聯(lián)網(wǎng)速度測試和分析公司Ookla給出的一份全年的數(shù)據(jù)報告,2018年寬帶網(wǎng)速最快的國家是新加坡,而移動寬帶平均下周速度最快的國家是挪威,兩者對應的速度分別是175.13 Mbps(21.9 MB/s)和63.19 Mbps(7.9 MB/s)。...
全球5G移動套餐資費出爐:最便宜的也要30元/G,人均月流量至少60G
目前,韓國、美國、芬蘭都已經(jīng)宣布開始試商用5G網(wǎng)絡,雖然當前市面上還沒有終端支持相應的網(wǎng)絡(5G手機可以向下兼容4G網(wǎng)絡,反之不行),但5G移動資費已經(jīng)相繼出爐,這對于不少想要提前體驗5G網(wǎng)絡的用戶可以參考下。...
CSS去除移動端點擊時元素產(chǎn)生的背景色
文章主要介紹了CSS去除移動端點擊時元素產(chǎn)生的背景色,代碼很簡單,需要的朋友跟隨小編一起看看吧在點擊產(chǎn)生背景色的元素的css樣式上加上以下代碼: -webkit-tap-highlight...
售價99元!小米二合一移動電源(充電器)發(fā)布
12月10日,小米推出了一款小米二合一移動電源(充電器),集雙口移動電源與雙口充電器于一身,售價99元?! ∑綍r插入插座,就是充電器,出門前拿下,就是一個5000mAh的移動電源。二...
移動親情網(wǎng)怎么辦理?中國移動全國親情網(wǎng)辦理方法和資費
近日中國移動推出了全國親情網(wǎng)套餐,該套餐是手機卡的增值服務,并非手機卡套餐。據(jù)悉,親情網(wǎng)套餐有點類似于之前的集群網(wǎng)服務,訂購之后,群組內(nèi)的用戶可以享受全國不限時互打免費的...
三大運營商4G上傳、下載網(wǎng)速實測:電信、移動跟聯(lián)通差距不小
專業(yè)的測速機構Speedtest隔段時間都會送出最新的實測網(wǎng)速情況,現(xiàn)在他們羅列了國內(nèi)最新4G網(wǎng)速概況,無論是上傳還是下載的平均網(wǎng)速上,中國聯(lián)通都是當之無愧的第一,具體情況如下。...
全球移動支付用戶數(shù)排名:微信支付6億用戶超越支付寶居榜首
按照Merchant Machine的估計,中國有47%的手機用戶使用移動錢包,微軟與支付寶是首選平臺。挪威也有42%的手機用戶使用,高于歐洲其它任何國家,比美國日本都要高。英國排在第三位,有24%的手機用戶使用支付App,美國只有17%。...