關於vue中使用rem問題


1.下載lib-flexible

我使用的是vue-cli+webpack,所以是通過npm來安裝的

npm i lib-flexible --save

2.引入lib-flexible

在main.js中引入lib-flexible

import 'lib-flexible/flexible'

3.安裝px2rem-loader

npm install px2rem-loader

4.配置px2rem-loader

在build文件中找到util.js,將px2rem-loader添加到cssLoaders中,將下面代碼加進cssLoaders方法中

復制代碼
  const px2remLoader = {
    loader: 'px2rem-loader',
    options: {
      remUint: 75
    }
  }
復制代碼

 

同時,在generateLoaders方法中添加px2remLoader

復制代碼
  function generateLoaders (loader, loaderOptions) {
    const loaders = [cssLoader, px2remLoader]
     
    if (options.usePostCSS) {
      loaders.push(postcssLoader)
    }

    if (loader) {
      loaders.push({
        loader: loader + '-loader',
        options: Object.assign({}, loaderOptions, {
          sourceMap: options.sourceMap
        })
      })
    }
復制代碼

5、重啟

當配置完之后,重啟下服務,px會自動轉化為rem了

npm run dev

6、注意事項

1、不能在index.html的頭部加 name 為 viewport 的 meta 標簽,flexible會自動為我們添加!

2、對css中文字樣式增加/* px */后綴,會編譯出適應不同dpr的字號

復制代碼
.text{
    font-size: 28px; /* px */
}
// 會被編譯成如下:

[data-dpr="1"] .text { // data-dpr是由flexible計算出來並加在html上的設備像素比
    font-size: 14px;
}

[data-dpr="2"] .text {
    font-size: 28px;
}

[data-dpr="3"] .text {
    font-size: 42px;
}
復制代碼

3、對邊框樣式增加/* no */后綴,會保持原樣

復制代碼
.box{
    border: 1px solid #fff; /* no */
}
// 會被編譯成如下:
.box{
    border: 1px solid #fff;
}
復制代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM