px2rem的使用

px2rem插件

因為設計師每次給的都是px的圖,這里要自己計算轉換rem很頭疼,所以這里使用插件進行px與rem的轉換

rem的響應式設計

這里是我一個全局的js文件,根據設備的寬度和設計稿來動態(tài)的另一rem的大小,因此在項目中直接按照設計稿計算出對應的rem來寫,設備就能自動適配

/* eslint-disable */
(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 / 375) + 'px';
        };
    if (!doc.addEventListener) return;
    win.addEventListener(resizeEvt, recalc, false);
    doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window);
// 這里在375的設備上1rem = 20px,在其他屏幕寬的時候會自動根據這個比例來動態(tài)調整

第一款: px2rem

這款插件是集成到項目中的,如果你的項目是使用vue-cli自動構建工具構件的,建議參考如下配置

  1. 安裝
npm install px2rem-loader

  1. 配置
    webpack.base.conf.js > 在module> rules 下添加
{
    test: /\.scss$/,
    loaders: ["style", "css", "sass"]
}

3.找到utils.js這個文件 在cssloader 后面加入

var px2remLoader = {
    loader: 'px2rem-loader',
    options: {
      remUnit: 40 // 40px = 1rem
            remPrecision: 8 // rem的小數點后位數
    }
  }
再然后把這行替換成
  const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
這個
  const loaders = [cssLoader, px2remLoader];

注意: 這里的流程中有兩次轉換第一次 css中的px轉換為px2rem的rem,這里是 40px = 1rem,第二步是rem適配到頁面 ,這里的rem與像素比是根據屏幕寬度動態(tài)計算的,以375的設備為例是 1rem = 20px轉換到頁面中顯示.這樣最終實現 輸入 40px,屏幕上20px的效果,因為我UI標注是按照2倍圖來的,所以直接按照標注寫就自己轉換了。

4.重啟項目就可以了

cssrem 插件

這個是vscode ide 的一款插件,主要實現了在書寫代碼的時候直接將px轉成rem

  1. vscode安裝插件
    2.配置
參數配置文件:VSCode -> 文件 -> 設置 -> 搜索cssrem

cssrem.rootFontSize root font-size (unit: px), default: 16
cssrem.fixedDigits px轉rem小數點最大長度,默認:6。
cssrem.autoRemovePrefixZero 自動移除0開頭的前綴,默認:true

3.書寫的時候就會有提示 ,可以直接轉換rem

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容