rem和viewport輕松解決屏幕適配

如果覺(jué)得還有點(diǎn)用凹嘲,請(qǐng)您給我一個(gè)贊堂飞!您的贊是我堅(jiān)持下去的動(dòng)力

拋棄media查詢
當(dāng)你期望你的站點(diǎn)在任何屏幕下都按設(shè)計(jì)稿的原始比例展示的時(shí)候,這里提供2種方案爽篷,分別是:viewport和rem來(lái)解決

方案一 :viewport

原理

我們經(jīng)常在head里寫的id為viewport的meta標(biāo)簽悴晰,其中initial-scale這個(gè)參數(shù)可以控制瀏覽器強(qiáng)制將頁(yè)面整體縮放一定比例(0.0~1.0)范圍,所以我們可以通過(guò)計(jì)算當(dāng)前視窗寬度和我們?cè)O(shè)計(jì)稿默認(rèn)屏幕寬度的一個(gè)比例逐工,來(lái)放大或縮小整個(gè)頁(yè)面

實(shí)現(xiàn)過(guò)程
  • 開(kāi)發(fā)過(guò)程中按照設(shè)計(jì)稿的尺寸進(jìn)行開(kāi)發(fā)铡溪,比如設(shè)計(jì)稿的屏幕寬度為750px,上面有一個(gè)按鈕大小為200px*100px泪喊,那么我們css就按照這個(gè)尺寸來(lái)寫

  • 在頁(yè)面進(jìn)入的時(shí)候通過(guò)當(dāng)前屏幕寬度和設(shè)計(jì)稿的寬度比例來(lái)調(diào)整縮放比例

<head>
      var scale = window.screen.width/750;
      var viewport=`<meta id="viewport" name="viewport" content="width=device-width,initial-scale=${scale},user-scalable=no">`
      document.write(viewport);
</head>

方案二:rem布局

原理

通過(guò)css的rem單位代替px來(lái)自動(dòng)計(jì)算最終px值棕硫,rem是啥我就不多解釋了,可以自行百度袒啼。
我們默認(rèn)設(shè)置整個(gè)頁(yè)面的html標(biāo)簽的字體大小為100像素 font-size:100px哈扮,這個(gè)時(shí)候如果我們給一個(gè)按鈕寬度設(shè)置 1rem也就相當(dāng)于1*100 px的大小,那么我們只需要改變html標(biāo)簽中的font-size的大小瘤泪,就可以整體控制所有用到rem單位樣式的的縮放比例了

實(shí)現(xiàn)過(guò)程
  • 定義 html{font-size:100px}
  • 開(kāi)發(fā)過(guò)程中灶泵,根據(jù)設(shè)計(jì)稿上的 尺寸/100 來(lái)計(jì)算出對(duì)應(yīng)的rem值,如設(shè)計(jì)稿上按鈕是200px对途,則轉(zhuǎn)換成 200/100=2rem
  • 在站點(diǎn)內(nèi)加入計(jì)算比例的代碼赦邻,并且監(jiān)聽(tīng)窗口變化時(shí),重新調(diào)用代碼計(jì)算比例
  • 完整代碼如下:
<style>
  html{font-size:100px;}
</style>

<html>
  <div style="width:7.50rem;height:.8rem;border:4px solid green"></div>
</html>

<script>
  var docEl = document.documentElement;
  function reSetRem() {
    let w = docEl.clientWidth;
    var rem = w * 100 / 750;//這里750設(shè)置成設(shè)計(jì)稿對(duì)應(yīng)的屏幕寬度
    docEl.style.fontSize = rem + 'px'
  }
  window.addEventListener("resize",reSetRem);
  reSetRem();
</script>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末实檀,一起剝皮案震驚了整個(gè)濱河市惶洲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌膳犹,老刑警劉巖恬吕,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異须床,居然都是意外死亡铐料,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)钠惩,“玉大人柒凉,你說(shuō)我怎么就攤上這事÷耍” “怎么了膝捞?”我有些...
    開(kāi)封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)愧沟。 經(jīng)常有香客問(wèn)我蔬咬,道長(zhǎng),這世上最難降的妖魔是什么沐寺? 我笑而不...
    開(kāi)封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任林艘,我火速辦了婚禮,結(jié)果婚禮上芽丹,老公的妹妹穿的比我還像新娘北启。我一直安慰自己卜朗,他們只是感情好拔第,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著场钉,像睡著了一般蚊俺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上逛万,一...
    開(kāi)封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天泳猬,我揣著相機(jī)與錄音,去河邊找鬼宇植。 笑死得封,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的指郁。 我是一名探鬼主播忙上,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼闲坎!你這毒婦竟也來(lái)了疫粥?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤腰懂,失蹤者是張志新(化名)和其女友劉穎梗逮,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體绣溜,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡慷彤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片底哗。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡贷屎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出艘虎,到底是詐尸還是另有隱情唉侄,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布野建,位于F島的核電站属划,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏候生。R本人自食惡果不足惜同眯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望唯鸭。 院中可真熱鬧须蜗,春花似錦、人聲如沸目溉。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)缭付。三九已至柿估,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間陷猫,已是汗流浹背秫舌。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留绣檬,地道東北人足陨。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像娇未,于是被迫代替她去往敵國(guó)和親墨缘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

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