欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

rem適配移動設(shè)備的方法示例

  發(fā)布時間:2019-04-25 15:26:44   作者:xiaoyueyue   我要評論
這篇文章主要介紹了rem適配移動設(shè)備的方法示例的相關(guān)資料,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

前言

移動端 rem 適配方案回顧總結(jié)

如何使用 rem

rem 單位的計算參考 html 的根節(jié)點 font-size進行計算,根節(jié)點的字體變化,布局參考的 rem 頁面也會相應(yīng)進行縮放,此為 rem 布局的本質(zhì)。

1. 動態(tài)改變 html 的 font-size 值

幾乎在每個瀏覽器都將 html 的 font-size 初始化 為 16px , 我們動態(tài)改變的話可以暫時將 16px 設(shè)置為 rem 適配的根節(jié)點 font-size 初始值。

那么如何進行適配動態(tài)修改?

假定設(shè)計稿寬度 為 750px,我們定義了自己使用 1rem = 16px 的單位去布局,如何適配呢?

在 chrome 的 手機 iphone 模擬器寬度為 375px,正好為設(shè)計稿的 一半,我們可以口算: 當時的 1rem 應(yīng)該等于初始化時 html 節(jié)點 font-size 的一半,即 newFontSize = 16/2 = 8px,這樣一半對一半不就適配了嗎...

從中得到公式 設(shè)計稿寬度/16px = 需要適配的設(shè)備寬度/8px,能夠看出 新的 font-size 是參考 當前的設(shè)備寬度與原設(shè)計稿的寬度,進行等比縮放的

最終得到 newFontSize = 16px * 需要適配的設(shè)備寬度 / 原設(shè)計稿寬度

(function(doc, win) {
  var resizeEvt =
      "orientationchange" in window ? "orientationchange" : "resize",
    setRemResponse = function() {
      var vM = 750;
      var vfontSize = 16;
      var html = doc.documentElement;
      var newfontSize = (vfontSize * html.clientWidth) / vM;
      html.style.fontSize = newfontSize + "px";
    };
  doc.addEventListener("DOMContentLoaded", setRemResponse, false);
  win.addEventListener(resizeEvt, setRemResponse, false);
})(document, window);

2. 實際使用

將測量得出的btn 按鈕的樣式從 px轉(zhuǎn)換 為 rem

.btn {
  width: 699px; /* 699/16 => 43.6875rem; */
  height: 90px; /* 90/16px => 5.625rem;  */
  background: rgba(90, 173, 246, 1);
  border-radius: 6px; /* 6/16=> 0.375rem; */
}

自己計算太繁瑣,使用 scss 定義 函數(shù)代替計算過程

@function pxToRem($initialStyle) {
  @return $initialStyle/16 * 1rem;
}

那么上面的 css改寫為:

.btn {
  width: pxToRem(699);
  height:pxToRem(90);
  background: rgba(90, 173, 246, 1);
  border-radius:pxToRem(6);
}

補充: vscode 的插件 cssrem 支持計算 將我們在 css,scss 中輸入的 px 轉(zhuǎn)換為 rem 單位,默認設(shè)置的 font-size 為 16px

計算方法變形,口算 rem

1. 簡單分析

分析上一節(jié)我們最終得到 newFontSize = 16px * 需要適配的設(shè)備寬度 / 原設(shè)計稿寬度

每次計算要除以 16 很是繁瑣,我們?nèi)魧?初始的 html 根節(jié)點 font-size變?yōu)榉奖阌嬎愕模凑罱K做為一個除數(shù),變?yōu)槎嗌倌? 是否 100 更為方便呢?對了!

const oHtml = document.documentElement;
const clientWidth = oHtml.clientWidth;
var vM = 750;
var vfontSize = 100;
// 移動設(shè)備
oHtml.style.fontSize = (vfontSize * clientWidth) / vM + "px";

2. 實際使用

還是上面熟悉的那個 btn, 將px轉(zhuǎn)換 為 rem, 口算得出結(jié)果。

.btn {
  width: 699px; /* 699/100 => 6.99rem; */
  height: 90px; /* 90/100 => 0.9rem;  */
  background: rgba(90, 173, 246, 1);
  border-radius: 6px; /* 6/100=> 0.06rem; */
}

不得不說,有了 scss 是真的方便!

@function reduced100($initialStyle) {
  @return $initialStyle/100 * 1rem;
}

那么上面的 css函數(shù)方法改寫為:

.btn {
  width: reduced100(699);
  height:reduced100(90);
  background: rgba(90, 173, 246, 1);
  border-radius:reduced100(6);
}

怎么樣,rem 原來就是這么簡單!??!

工具函數(shù)

上面的方法,二選其一就可以了,畢竟現(xiàn)在 javascript 的 執(zhí)行效率不差!

(function(doc, win) {
  var resizeEvt =
      "orientationchange" in window ? "orientationchange" : "resize",
    setRemResponse = function() {
      var vM = 750;
      var vfontSize = 16;
      var html = doc.documentElement;
      var newfontSize = (vfontSize * html.clientWidth) / vM;
      html.style.fontSize = newfontSize + "px";
    };
  doc.addEventListener("DOMContentLoaded", setRemResponse, false);
  win.addEventListener(resizeEvt, setRemResponse, false);
})(document, window);

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Html5移動端適配IphoneX等機型的方法

    這篇文章主要介紹了Html5移動端適配IphoneX等機型的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起
    2019-06-25
  • 淺談移動端適配大法

    這篇文章主要介紹了淺談移動端適配大法的相關(guān)資料,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-05
  • 詳解如何使用image-set適配移動端高清屏圖片

    這篇文章主要介紹了詳解如何使用image-set適配移動端高清屏圖片的相關(guān)資料,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-14
  • 移動 web 端屏幕適配(rem)

    這篇文章主要介紹了移動 web 端屏幕適配(rem)。詳細的介紹了移動 web 端屏幕適配(rem),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-25
  • 詳解H5 活動頁之移動端 REM 布局適配方法

    這篇文章主要介紹了詳解H5 活動頁之移動端 REM 布局適配方法的相關(guān)資料,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-07
  • html5實現(xiàn)移動端適配完美寫法

    這篇文章主要介紹了html5實現(xiàn)移動端適配完美寫法,需要的朋友可以參考下
    2017-11-16
  • 手機端用rem+scss做適配的詳解

    這篇文章主要介紹了手機端用rem+scss做適配的詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-15
  • 移動端適配 使px自動轉(zhuǎn)換rem

    這篇文章主要介紹了移動端適配 使px自動轉(zhuǎn)換rem的相關(guān)資料,需要的朋友可以參考下
    2019-08-26

最新評論