響應(yīng)式開發(fā)最佳實踐(viewport+rem)

一、CSS像素彬坏、物理像素、邏輯像素膝晾、設(shè)備像素比栓始、PPI、Viewport

參考鏈接:https://github.com/jawil/blog/issues/21

要點歸納
  • DPR = 設(shè)備像素/CSS像素
  • viewport的值取widthinitial-scale的最大值
  • viewport只是改變document.documentElement.clientWidthwindow.innerWidth
  • 為了防止有滾動條血当,禁止縮放:
<meta name="viewport" content="width=device-width, initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0, user-scalable=no">


二幻赚、響應(yīng)式開發(fā)最佳實踐(參考淘寶響應(yīng)式)

參考鏈接: http://www.cnblogs.com/lyzg/p/4877277.html

響應(yīng)式開發(fā)最佳實踐原理分析:
  • 在實際項目中,把與元素尺寸有關(guān)的css臊旭,如width,height,line-height,margin,padding等都以rem作為單位落恼,這樣頁面在不同設(shè)備下就能保持一致的網(wǎng)頁布局。
  • font-size用媒體查詢改變px离熏,不能設(shè)為rem佳谦。
  • 網(wǎng)易響應(yīng)式:只修改font-size
  • 淘寶響應(yīng)式:即修改font-size,又修改viewport【看下面<script>的源碼】
  • 例:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<script>
    document.addEventListener("DOMContentLoaded",function(){
    // 淘寶響應(yīng)式多寫了下面這2句滋戳,修改viewport
    let scale = 1 / window.devicePixelRatio;
    document.querySelector('meta[name="viewport"]').setAttribute('content','initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no'); 
    // 淘寶+網(wǎng)易響應(yīng)式都需要的修改font-size
    document.documentElement.style.fontSize = document.documentElement.clientWidth / 10 + 'px';
    },false)
</script>
<body>
    <div>
        <div style="
            background: pink;
            height: 2rem;
            width: 8rem;
        ">600px</div>
        <div style="
            background: lightblue;
            height: 2rem;
            width: 8rem;
        ">600px</div>
    </div>
</body>
</html>
  • 網(wǎng)易響應(yīng)式(只修改font-size):
  • 淘寶響應(yīng)式(既修改font-size钻蔑,又修改viewport):

由此可見:兩者最終視覺上的寬高是一致的,但同樣視覺寬高胧瓜,淘寶做法顯示更多的像素點矢棚,所以將會更加高清,效果更好府喳,推薦使用蒲肋。

  • 技術(shù)要點:
<script>
    document.addEventListener("DOMContentLoaded",function(){
    // 淘寶做法多寫了下面這2句,修改viewport
        let scale = 1 / window.devicePixelRatio;
        document.querySelector('meta[name="viewport"]').setAttribute('content','initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no'); 
    // 通用做法(淘寶+網(wǎng)易都需要)钝满,修改font-size
        document.documentElement.style.fontSize = document.documentElement.clientWidth / 10 + 'px';
    },false)
</script>
  • 修改viewport的時候兜粘,即使屏幕變寬(從375px-->750px),但因為font-size也跟著變大同樣的倍數(shù)(從37.5-->75px)弯蚜,所以用rem做單位的元素孔轴,寬高在視覺上沒有變化。
  • 淘寶響應(yīng)式碎捺,先將頁面的寬高根據(jù)DPR路鹰,由CSS像素(375px)還原成設(shè)備像素(750px)贷洲,再由此時的clientWidth(750px)按照相對值設(shè)置font-size,再由rem設(shè)置相對尺寸晋柱,這樣根據(jù)750px設(shè)計稿便可輕松設(shè)計出設(shè)配不同像素的手機(jī)了
  • 若rem計算不方便优构,可設(shè)置font-size=cilentWidth/7.5=100px,如此便可方便換算了


附雁竞、Domready使用“DOMContentLoaded”事件監(jiān)聽


參考鏈接:https://developer.mozilla.org/zh-CN/docs/Web/Events/DOMContentLoaded
參考鏈接:http://www.reibang.com/p/88b9d3874749

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末钦椭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子碑诉,更是在濱河造成了極大的恐慌彪腔,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件进栽,死亡現(xiàn)場離奇詭異德挣,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)泪幌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門盲厌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人祸泪,你說我怎么就攤上這事吗浩。” “怎么了没隘?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵懂扼,是天一觀的道長。 經(jīng)常有香客問我右蒲,道長阀湿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任瑰妄,我火速辦了婚禮陷嘴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘间坐。我一直安慰自己灾挨,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布竹宋。 她就那樣靜靜地躺著劳澄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蜈七。 梳的紋絲不亂的頭發(fā)上秒拔,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機(jī)與錄音飒硅,去河邊找鬼砂缩。 笑死作谚,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的梯轻。 我是一名探鬼主播食磕,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼尽棕,長吁一口氣:“原來是場噩夢啊……” “哼喳挑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起滔悉,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤伊诵,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后回官,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體曹宴,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年歉提,在試婚紗的時候發(fā)現(xiàn)自己被綠了笛坦。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡苔巨,死狀恐怖版扩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情侄泽,我是刑警寧澤礁芦,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站悼尾,受9級特大地震影響柿扣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜闺魏,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一未状、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧析桥,春花似錦逞怨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至沮焕,卻和暖如春吨岭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背峦树。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工辣辫, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留旦事,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓急灭,卻偏偏與公主長得像姐浮,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子葬馋,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案卖鲤? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,728評論 1 92
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準(zhǔn)畴嘶。 注意:講述HT...
    kismetajun閱讀 27,424評論 1 45
  • 偶然間發(fā)現(xiàn)這篇文章蛋逾,可以說,這是我見到的對移動rem單位做的最詳細(xì)窗悯,最細(xì)心的一篇總結(jié)性文章区匣,果斷轉(zhuǎn)載至本博客,以便...
    阿寶er閱讀 1,149評論 5 51
  • “春日遲遲蒋院,卉木萋萋亏钩。倉庚喈喈,采蘩祁祁欺旧」贸螅” 都說三月“千里鶯啼綠映紅”。 三月里鶯飛燕長切端,春風(fēng)散在空氣打轉(zhuǎn)著新抽...
    憶藍(lán)zing閱讀 991評論 0 0
  • 一彻坛、工作方面 1.盡力將一班的小伙伴們?nèi)考尤牒诵囊蝗海繕?biāo):最低完成30%) 2.合理安排好每天服務(wù)于時間管理學(xué)...
    謙謙Agoni閱讀 177評論 0 0