【修真院web小課堂】手機分辨率和網(wǎng)頁中的px是一回事嗎?2018.1.3

大家好,我是IT修真院深圳分院第4期學員梁耀,一枚正直純潔善良的web程序員。

今天給大家分享:手機分辨率和網(wǎng)頁中的px是一回事嗎?

【css-4】

分享人:梁耀

背景介紹

什么是絕對長度單位?什么是相對長度單位?

  絕對長度單位:in(inch英寸)、cm(厘米)、mm(毫米)、pt(磅)、pc(pica)。in、cm、

mm和實際中的常用單位完全相同。pt是標準印刷上常用的單位,72pt的長度為1英寸。pc也是印刷上用

的單位,1pc的長度為12磅。絕對長度單位,雖然理解起來很容易,但是在網(wǎng)頁的設(shè)計中很少用到。

 相對長度單位:是網(wǎng)頁設(shè)計中使用最多的長度單位,包括px、em、rem等。

什么是屏幕尺寸、屏幕分辨率、屏幕像素密度?

  屏幕尺寸:

    指屏幕的對角線的長度,單位是英寸,1英寸=2.54厘米。常見的屏幕尺寸有4.2、4.7、5.5、

6.0等。

屏幕分辨率:

    指在橫縱向上的像素點數(shù),單位是px,1px=1個像素點。一般以縱向像素*橫向像素來表示一

個手機的分辨率,如1960*1080。(這里的1像素值得是物理設(shè)備的1個像素點

屏幕像素密度:

    屏幕上每英寸可以顯示的像素點的數(shù)量,單位是ppi,即“pixels per inch”的縮寫。屏幕

像素密度與屏幕尺寸和屏幕分辨率有關(guān),在單一變化條件下,屏幕尺寸越小、分辨率越高,像素密度

越大,反之越小。

計算像素密度的公式:

通過勾股定理算出對角線的分辨率,然后在除以屏幕的尺寸


知識剖析:
viewport的概念

移動設(shè)備上的viewport就是設(shè)備的屏幕上能用來顯示我們的網(wǎng)頁的那一塊區(qū)域

一般來講,移動設(shè)備上的viewport都是要大于瀏覽器可視區(qū)域的,這是因為考慮到移動設(shè)備的分辨率

相對于桌面電腦來說都比較小,所以為了能在移動設(shè)備上正常顯示那些傳統(tǒng)的為桌面瀏覽器設(shè)計的網(wǎng)

站,移動設(shè)備上的瀏覽器都會把自己默認的viewport設(shè)為980px或1024px(也可能是其它值,這個是由

設(shè)備自己決定的),但帶來的后果就是瀏覽器會出現(xiàn)橫向滾動條,因為瀏覽器可視區(qū)域的寬度是比這

個默認的viewport的寬度要小的。下圖列出了一些設(shè)備上瀏覽器的默認viewport的寬度。

width 設(shè)置layout viewport? 的寬度,為一個正整數(shù),或字符串"width-device"

initial-scale 設(shè)置頁面的初始縮放值,為一個數(shù)字,可以帶小數(shù)

minimum-scale 允許用戶的最小縮放值,為一個數(shù)字,可以帶小數(shù)

maximum-scale 允許用戶的最大縮放值,為一個數(shù)字,可以帶小數(shù)

height 設(shè)置layout viewport? 的高度,這個屬性對我們并不重要,很少使用

user-scalable 是否允許用戶進行縮放,值為"no"或"yes", no 代表不允許,yes代表允許

常見問題

當UI設(shè)計師給一個圖的時候,為什么同是一個尺寸(px)而兩者的大小不一樣?

解決方案

在Android中,規(guī)定以160dpi為基準,1dp=1px。如果密度是320dpi,則1dp=2px,以此類推。 Android和IOS都會通過轉(zhuǎn)換系數(shù)讓控件適應屏幕的尺寸。一個按鈕給了44*44dp的大小,在160dpi密度的時候, 按鈕就是44*44px大??;在320dpi密度的時候,按鈕就是88*88px的大小。不需要我們?nèi)鴮懚嗵壮叽纭?/p>

擴展思考

移動端常用的方案有哪些?

簡單方法簡單解決(使用PX)

代表:拉鉤網(wǎng)

彈性布局

開發(fā)原則:文字流式,控件彈性,圖片等比縮放

使用rem布局

代表:網(wǎng)易、淘寶

使用rem布局結(jié)合在html上根據(jù)不同分辨率設(shè)置不同font-size有很多不好解決的麻煩, 網(wǎng)易是如何解決的呢?最根本的原因在于,網(wǎng)易頁面上html的font-size不是預先通過媒介查詢在css里定義好的, 而是通過js計算出來的

參考一 :

深度理解viewport

參考二:

? ? 移動前端自適應適配方案

Q1:

A1:像現(xiàn)在的主流是設(shè)定,UI設(shè)計師一般都是以iPhone6為基準,設(shè)計UI圖,我們獲取到

圖形之后,在經(jīng)過計算(我覺得公司會有文檔計算好了的),按照規(guī)定文檔來編寫頁面就可以

Q2:


A2:手機出廠的時候以及設(shè)置好的分辨率,是不可更改的,如小米mix2的分辨率就是1980px*2216px

Q3:


A3:em是相對父級,rem相對根元素;一般在寫響應式頁面的時候,通常是使用rem

Q4:

A4:js計算比較簡便而且代碼量很少;css媒體查詢就比較繁瑣,每一個不同分辨率下都需要重新設(shè)置

Q5:

A5:不會,像淘寶,網(wǎng)易這些大型網(wǎng)站都用這種方式,可見其優(yōu)越性

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容