1. 程式人生 > >px rem 轉換的幾種方法(解析度字型調整)

px rem 轉換的幾種方法(解析度字型調整)

目前(2016-06-19)px轉rem 的工具已經不少了。下面介紹幾個轉換的方案。



轉換方式1: 使用 線上-px轉rem

轉換方式2: 使用 sublime text 3 rem外掛自動轉換。
  
效果如下:
 
  這裡寫圖片描述

使用步驟

   1、下載外掛 https://github.com/hyb628/cssrem.git
  
  2、進入packages目錄:Sublime Text 3 編輯器 -> Preferences -> Browse Packages…
  
然後點選開啟,將下載好的 cssrem 檔案放入其中,重啟Sublime Text即可。

這裡寫圖片描述

配置引數(可選)

  引數配置檔案:Sublime Text3 -> Preferences -> Package Settings -> cssrem

    px_to_rem - px轉rem的單位比例,預設為40。
    
    max_rem_fraction_length - px轉rem的小數部分的最大長度。預設為6。
    
    available_file_types - 啟用此外掛的檔案型別。預設為:[“.css”, “.less”, “.sass”]。
    
    我在配置檔案 cssrem.sublime-settings裡修改了單位比例為100
    
    具體的比例引數還是看個人平時切圖怎麼設定引數為準。

這裡寫圖片描述
  
  3、重啟Sublime Text。
  



轉換方式3: 使用node Grunt 來執行轉換。



轉換方式4: 常用設定轉換。

   1.針對設計稿 計算rem

   所有瀏覽器都一致預設保持著 16px 的預設字號 1em:16px ,但是 1:16 的比例不方便計算。

  在這裡文件元素設定 font-size: 62.5%,可以很方便的利用十進位制進行計算了,(CSS 預處理工具可以使用預設值)

html {font-size: 62.5%;   /*  10 ÷ 16 × 100% = 62.5% */}
body {font-size: 1.4
rem
; /* 1.4 × 10px = 14px */}
h1 { font-size: 2.4rem; /* 2.4 × 10px = 24px */}

  所以如果我有一個寬度為640的設計稿,通過上面的方法算出對應元素rem的大小 。

 (附註:實際專案不可以設定成 font-size: 62.5%,因為chrome不支援小於12px的字型,計算小於12px的時候,會預設取12px去計算,導致chrome的rem計算不準確)

2。針對不同解析度計算font-size

監聽瀏覽器更改 html的font-size


(function (doc, win) {
  var docEl = doc.documentElement,
    resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
    recalc = function () {
      var clientWidth = docEl.clientWidth;
      if (!clientWidth) return;
      docEl.style.fontSize = 20 * (clientWidth / 320) + 'px';
    };

  if (!doc.addEventListener) return;
  win.addEventListener(resizeEvt, recalc, false);
  doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window);

配合css預處理工具計算 rem 值。 Sass、LESS 、Stylus

5、js 處理響應式 px 轉換 rem

~ function(desW) {
    var winW = document.documentElement.clientWidth;
    if(winW > desW) {
        var oMain = document.querySelector(".box");
        oMain.style.margin = "0 auto";
        oMain.style.width = desW + "px";
        return;
    }
    document.documentElement.style.fontSize = winW / desW * 100 + "px";
}(640);

好處就是相容性完美,缺點是網路請求超慢的時候,所有東西都會放大再縮小,會出現閃屏!

6、px 轉換 rem 工具(– 熱心網友提供,非常感謝 –)