移動(dòng)端適配前需弄懂的基本知識(shí)

對(duì)于剛接觸移動(dòng)端的適配漆魔,我想最大的困惑應(yīng)該是為什么全部像素不能和pc端一樣按照設(shè)計(jì)稿給定的像素來(lái)處理?

想弄明白上面的這個(gè)問(wèn)題,得先搞明白像素和視口凶异。

像素:中文全稱(chēng)為圖像元素蜀撑。是指在由一個(gè)數(shù)字序列表示的圖像中的一個(gè)最小單位。像素僅僅只是分辨率的尺寸單位唠帝,而不是畫(huà)質(zhì)屯掖。通常以像素每英寸(PPI)為單位來(lái)表示影像分辨率的大小。

適配中需要考慮兩種像素

1.設(shè)備像素

屏幕的物理像素襟衰,任何設(shè)備屏幕的物理像素的數(shù)量都是固定不變的贴铜,單位是pt

2.css 像素

在css、js中使用的一個(gè)抽象的概念瀑晒,單位是px

順便說(shuō)下,css像素也可以稱(chēng)為設(shè)備獨(dú)立像素(device-independent pixels)簡(jiǎn)稱(chēng)為dips绍坝,單位是dp

那么,設(shè)置一個(gè)元素width:200px苔悦,這個(gè)元素便跨越了200個(gè)css元素轩褐,200個(gè)css元素相當(dāng)于多少個(gè)設(shè)備元素取決于兩個(gè)條件

<1>頁(yè)面是否縮放

縮放與設(shè)備像素、css像素的關(guān)系

縮放是在放大或縮小css像素玖详,比如一個(gè)寬度為200px的像素?zé)o論怎樣放大把介,還是200個(gè)css像素。但是因?yàn)檫@些像素被放大了蟋座,所以css像素也就跨越了更多的設(shè)備像素拗踢,縮小則相反。

縮放與視口

視覺(jué)視口:視覺(jué)視口是用戶正在看到的網(wǎng)頁(yè)的區(qū)域向臀,大小是屏幕中css像素的數(shù)量

window.innerWidth/Height 返回視覺(jué)視口的尺寸

縮放會(huì)影響視覺(jué)視口的尺寸巢墅。頁(yè)面被用戶放大,視覺(jué)視口內(nèi)css像素?cái)?shù)量減少券膀;被用戶縮小君纫,視覺(jué)視口內(nèi)css像素增多。

用戶縮放不會(huì)影響布局視口但是設(shè)置縮放

<meta name="viewport" content="initial-scale=2">后芹彬,initial-scale有一個(gè)副作用:同時(shí)也會(huì)將布局視口設(shè)置為縮放后的尺寸蓄髓,所以initial-scale=1與width=devide-width的效果是一樣的

布局視口:一個(gè)沒(méi)有為移動(dòng)端做優(yōu)化的網(wǎng)頁(yè),會(huì)盡可能縮小網(wǎng)頁(yè)讓用戶看到所有東西舒帮。瀏覽器廠商為了讓用戶在小屏幕下網(wǎng)頁(yè)也能夠顯示地很好双吆,所以把視口寬度設(shè)置得很大,一般在768~1024px之間会前,最常見(jiàn)的寬度是980px好乐。所以在手機(jī)上視口與移動(dòng)端瀏覽器屏幕寬度不再相關(guān)聯(lián),是完全獨(dú)立的瓦宜,這個(gè)瀏覽器廠商定的視口被稱(chēng)為布局視口蔚万。

布局視口我們是看不見(jiàn)的,只知道網(wǎng)頁(yè)的最大寬度是980px临庇》戳В可以這樣設(shè)置布局視口的寬度:

<meta name="viewport" content="width=640">

媒體查詢與布局視口 ?700px指的是布局視口的寬度

@media (min-width:700px){}

document.documentElement.clientWidth/Height返回布局視口的尺寸

理想視口:布局視口明顯對(duì)用戶是不友好的昵慌,完全忽略了手機(jī)本身的尺寸。所以蘋(píng)果引入了理想視口的概念淮蜈,它是對(duì)設(shè)備來(lái)說(shuō)最理想的布局視口尺寸斋攀。理想視口中的網(wǎng)頁(yè)是對(duì)用戶最理想的寬度,用戶進(jìn)入頁(yè)面的時(shí)候不需要縮放梧田。

如果我們把布局視口的寬度改成屏幕的寬度不就不用縮放了么淳蔼。可以這樣設(shè)置告訴瀏覽器使用它的理想視口:

<meta name="viewport" content="width=device-width">

定義理想視口是瀏覽器的事情裁眯,并不能簡(jiǎn)單認(rèn)為是開(kāi)發(fā)者定義的鹉梨,開(kāi)發(fā)者只能使用。

screen.width/height 返回理想視口的尺寸,有嚴(yán)重的兼容性位圖---可能返回兩種值:

1.理想視口的尺寸(下載瀏覽器)

2.屏幕的設(shè)備像素尺寸(內(nèi)置瀏覽器)


完美視口:

解決各種瀏覽器兼容問(wèn)題的理想視口設(shè)置:

<meta name="viewport" content="width=device-width,initial-scale=1">


<2>屏幕是否為高密度

在縮放程度為100%(這個(gè)條件很重要穿稳,因?yàn)榭s放也會(huì)影響他們)時(shí)存皂,他們的比例叫做設(shè)備像素比(device-pixel-ratio ? ? ?dpr)

dpr = 設(shè)備像素/css像素

可以通過(guò)js得到 dpr : ? ? ?window.devicePixelRatio


所以對(duì)于第一個(gè)問(wèn)題我想現(xiàn)在已經(jīng)有了答案。

在屏幕不縮放的前提下逢艘,dpr決定了我們?nèi)绾螌⒃O(shè)計(jì)稿的的像素轉(zhuǎn)換為css像素旦袋。

10px*10px的圖片在dpr為2的屏幕下顯示為20px*20px,為了不被放大模糊掉它改,所以設(shè)計(jì)稿中這圖片是20px*20px的疤孕。這樣子我們?cè)O(shè)置該圖片的css像素時(shí)為10px*10px,實(shí)際顯示為20px*20px,最終結(jié)果是圖片正常顯示搔课,不會(huì)模糊胰柑。

<3>屏幕像素密度

ppi=√ (window.screen.width∧2 *?window.screen.height∧2)/屏幕尺寸

ppi為160時(shí)截亦,一個(gè)css像素和一個(gè)設(shè)備像素相對(duì)應(yīng)爬泥。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市崩瓤,隨后出現(xiàn)的幾起案子袍啡,更是在濱河造成了極大的恐慌,老刑警劉巖却桶,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件境输,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡颖系,警方通過(guò)查閱死者的電腦和手機(jī)嗅剖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)嘁扼,“玉大人信粮,你說(shuō)我怎么就攤上這事〕眯ィ” “怎么了强缘?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵督惰,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我旅掂,道長(zhǎng)赏胚,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任商虐,我火速辦了婚禮觉阅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘称龙。我一直安慰自己留拾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布鲫尊。 她就那樣靜靜地躺著痴柔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪疫向。 梳的紋絲不亂的頭發(fā)上咳蔚,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音搔驼,去河邊找鬼谈火。 笑死,一個(gè)胖子當(dāng)著我的面吹牛舌涨,可吹牛的內(nèi)容都是我干的糯耍。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼囊嘉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼温技!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起扭粱,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤舵鳞,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后琢蛤,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蜓堕,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年博其,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了套才。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡慕淡,死狀恐怖背伴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤挂据,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布以清,位于F島的核電站,受9級(jí)特大地震影響崎逃,放射性物質(zhì)發(fā)生泄漏掷倔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一个绍、第九天 我趴在偏房一處隱蔽的房頂上張望勒葱。 院中可真熱鬧,春花似錦巴柿、人聲如沸凛虽。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)凯旋。三九已至,卻和暖如春钉迷,著一層夾襖步出監(jiān)牢的瞬間至非,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工糠聪, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荒椭,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓舰蟆,卻偏偏與公主長(zhǎng)得像趣惠,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子身害,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 一味悄、meta標(biāo)簽的效果 移動(dòng)端頁(yè)面一般會(huì)在head頭部添加如下meta標(biāo)簽。 該meta標(biāo)簽是否添加對(duì)頁(yè)面渲染的影...
    nimw閱讀 3,543評(píng)論 0 5
  • 我們第一次接觸移動(dòng)web的時(shí)候猾瘸,直觀印象樣應(yīng)該是:屏幕比pc小很多界赔,所以對(duì)pc端設(shè)計(jì)的界面,不一定(或者說(shuō)不完全)...
    Scaukk閱讀 16,848評(píng)論 6 46
  • 剛開(kāi)始做移動(dòng)端web開(kāi)發(fā)的同學(xué)應(yīng)該都碰到過(guò)頁(yè)面適配問(wèn)題牵触,為什么我在開(kāi)發(fā)手機(jī)上調(diào)試好的頁(yè)面在其他手機(jī)會(huì)有這樣或那樣的...
    留七七閱讀 19,362評(píng)論 5 80
  • 在移動(dòng)互聯(lián)網(wǎng)快速發(fā)展的今天淮悼,手機(jī)的種類(lèi)和尺寸越來(lái)越多,作為前端的小伙伴們可能會(huì)越來(lái)越頭疼揽思,但又不得不去適配一款又一...
    keenjaan閱讀 26,819評(píng)論 9 86
  • 人生的每個(gè)階段袜腥,回想起來(lái)都有讓自己感動(dòng)的時(shí)候。少年钉汗,青年羹令,壯年鲤屡,老年...某些疲倦,自己都會(huì)流下感動(dòng)的淚水福侈。 ...
    米Q閱讀 576評(píng)論 0 2