屏幕自適應(yīng)

屏幕適配

在CSS中我們一般使用px作為單位乓土,需要注意的是琳钉,CSS樣式里面的px和物理像素并不是相等的纪他。CSS中的像素只是一個抽象的單位,在不同的設(shè)備或不同的環(huán)境中耻煤,CSS中的1px所代表的物理像素是不同的具壮。在PC端,CSS的1px一般對應(yīng)著電腦屏幕的1個物理像素哈蝇,但在移動端棺妓,CSS的1px等于幾個物理像素是和屏幕像素密度有關(guān)的。

首先:我們必須了解幾個概念炮赦,就是:Retina屏怜跑、物理像素、設(shè)備獨立像素吠勘、設(shè)備像素比

1.Retina屏

所謂“Retina”是一種顯示標(biāo)準(zhǔn)性芬,是把更多的像素點壓縮至一塊屏幕里,從而達(dá)到更高的分辨率并提高屏幕顯示的細(xì)膩程度剧防。由摩托羅拉公司研發(fā)批旺。最初該技術(shù)是用于Moto Aura上。這種分辨率在正常觀看距離下足以使人肉眼無法分辨其中的單獨像素诵姜。也被稱為視網(wǎng)膜顯示屏汽煮。Retina屏一般在蘋果公司的產(chǎn)品上用的比較多搏熄,諸如MacBook、iPad暇赤、iPhone等

2.物理像素(physical pixel)

物理像素又被稱為設(shè)備像素心例、設(shè)備物理像素,它是顯示器(電腦鞋囊、手機(jī)屏幕)最小的物理顯示單位止后,每個物理像素由顏色值和亮度值組成。所謂的一倍屏溜腐、二倍屏(Retina)译株、三倍屏,指的是設(shè)備以多少物理像素來顯示一個CSS像素挺益,也就是說歉糜,多倍屏以更多更精細(xì)的物理像素點來顯示一個CSS像素點,在普通屏幕下1個CSS像素對應(yīng)1個物理像素望众,而在二倍Retina屏幕下匪补,1個CSS像素對應(yīng)的卻是4個物理像素

3.設(shè)備獨立像素(device-independent pixel)

設(shè)備獨立像素是我們寫CSS時所用的像素,它是一個抽像的單位烂翰,主要使用在瀏覽器上夯缺,用來精確度量Web頁面上的內(nèi)容。

4.設(shè)備像素比(device pixel ratio)

設(shè)備像素比簡稱為dpr甘耿,物理像素與設(shè)備獨立像素的比例踊兜。

當(dāng)這個比率為1:1時,使用1個設(shè)備像素顯示1個css像素佳恬。當(dāng)這個比率為2:1=2時润文,使用4(22)個設(shè)備像素顯示1個css像素。當(dāng)這個比率為3:1=3殿怜,使用9(33)個設(shè)備像素顯示1個css像素。 這里要注意曙砂,dpr=2,并不是物理像素是設(shè)備獨立像素的2倍头谜,而是用4個物理像素去表示1個設(shè)備邏輯像素

應(yīng)該說1個設(shè)備獨立像素是1個物理像素的4倍!p骸V妗!笑陈!际度,因為你4個網(wǎng)物理像素才代表我1個設(shè)備獨立像素

dpr只代表一個數(shù)字比例,不是倍數(shù)關(guān)系涵妥。

image

CSS的1px等于幾個物理像素乖菱,除了和屏幕像素密度dpr有關(guān),還和用戶縮放有關(guān)系。例如窒所,當(dāng)用戶把頁面放大一倍鹉勒,那么CSS中1px所代表的物理像素也會增加一倍;反之把頁面縮小一倍吵取,CSS中1px所代表的物理像素也會減少一倍禽额。關(guān)于這點,以后的1px細(xì)線問題部分還會講到皮官。

px 與 rem 的選擇脯倒?

對于只需要適配少部分手機(jī)設(shè)備,且分辨率對頁面影響不大的捺氢,使用px即可 藻丢。

對于需要適配各種移動設(shè)備,使用rem讯沈,例如只需要適配iPhone和iPad等分辨率差別比較挺大的設(shè)備郁岩。

rem是相對于根元素的字體大小的單位,也就是html的font-size大小缺狠,瀏覽器默認(rèn)的字體大小是16px问慎,所以默認(rèn)的1rem=16px,我們可以根據(jù)設(shè)備寬度動態(tài)設(shè)置根元素的font-size挤茄,使得以rem為單位的元素在不同終端上以相對一致的視覺效果呈現(xiàn)如叼。

事實上 rem是把屏幕等分成 指定的份數(shù),以20份為例穷劈,每份為 1rem 笼恰, 1rem 對應(yīng)的大小就是 rem基準(zhǔn)值 ,rem做的就是把 rem基準(zhǔn)值 給<html>的 font-size 歇终,所以如果設(shè)備的 物理像素 寬為 640px 社证,分成20份,那么 1rem=640px/20=32px , <html>的 font-size為32px 评凝。

//這段代碼放在head標(biāo)簽里面
<script>
(function () {
 var html = document.documentElement;

 function onWindowResize() {
 html.style.fontSize = html.getBoundingClientRect().width / 20 + 'px';
 }

 window.addEventListener('resize', onWindowResize);
 onWindowResize();
})();
</script>
?

當(dāng)然追葡,你也可以分成30份,40份奕短,60份等等宜肉,這個看自己的喜好了

在我們實際切圖的時候,對于視覺稿上的元素尺寸換算翎碑,只需要元素的 原始的px值(即你量的大小) 除以 rem基準(zhǔn)值 即可谬返。例如設(shè)計稿的大小為640px, rem基準(zhǔn)值 = 640px/20 = 32px 日杈,有個元素的大小你量出來是 140px286px* 遣铝,那么換算過來就是:


140px = 140/32 = 4.375rem
286px = 286/32 = 8.9375rem</pre>

這樣我們就可以用rem來代替像素px了佑刷, 而且在所有的移動端都是自適應(yīng)的

這個方法目前是比較好的適配方法,只是rem在計算時很麻煩翰蠢,有很多小數(shù)项乒,這個時候大家可以試一下用less解決rem的小數(shù)問題

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市梁沧,隨后出現(xiàn)的幾起案子檀何,更是在濱河造成了極大的恐慌,老刑警劉巖廷支,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件频鉴,死亡現(xiàn)場離奇詭異,居然都是意外死亡恋拍,警方通過查閱死者的電腦和手機(jī)垛孔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來施敢,“玉大人周荐,你說我怎么就攤上這事〗┩蓿” “怎么了概作?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長默怨。 經(jīng)常有香客問我讯榕,道長,這世上最難降的妖魔是什么匙睹? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任愚屁,我火速辦了婚禮,結(jié)果婚禮上痕檬,老公的妹妹穿的比我還像新娘霎槐。我一直安慰自己,他們只是感情好梦谜,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布丘跌。 她就那樣靜靜地躺著,像睡著了一般改淑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上浴讯,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天朵夏,我揣著相機(jī)與錄音,去河邊找鬼榆纽。 笑死仰猖,一個胖子當(dāng)著我的面吹牛捏肢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播饥侵,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鸵赫,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了躏升?” 一聲冷哼從身側(cè)響起辩棒,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎膨疏,沒想到半個月后一睁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡佃却,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年者吁,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饲帅。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡复凳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出灶泵,到底是詐尸還是另有隱情育八,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布丘逸,位于F島的核電站单鹿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏深纲。R本人自食惡果不足惜仲锄,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望湃鹊。 院中可真熱鬧儒喊,春花似錦、人聲如沸币呵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽余赢。三九已至芯义,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間妻柒,已是汗流浹背扛拨。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留举塔,地道東北人绑警。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓求泰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親计盒。 傳聞我的和親對象是個殘疾皇子渴频,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

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

  • 在移動互聯(lián)網(wǎng)快速發(fā)展的今天,手機(jī)的種類和尺寸越來越多北启,作為前端的小伙伴們可能會越來越頭疼卜朗,但又不得不去適配一款又一...
    keenjaan閱讀 26,819評論 9 86
  • 移動端適配方案:1)viewport(scale=1/dpr)2)rem3)flex4)vm/vh一、什么是移動端...
    puxiaotaoc閱讀 43,078評論 3 56
  • @(概述)[基本概念|百分比|rem|vw/vh|響應(yīng)式設(shè)計] 移動端web頁面的開發(fā)暖庄,由于手機(jī)屏幕尺寸聊替、分辨率不...
    jluemmmm閱讀 76,990評論 1 42
  • 頁面布局 靜態(tài)布局(Static Layout)使用CSS邏輯像素單位px進(jìn)行定寬布局,是PC端最常見形式培廓。 流式...
    JunChow520閱讀 1,426評論 0 6
  • 一惹悄、meta標(biāo)簽的效果 移動端頁面一般會在head頭部添加如下meta標(biāo)簽。 該meta標(biāo)簽是否添加對頁面渲染的影...
    nimw閱讀 3,543評論 0 5