如何在webpack+vue專案中使用postcss-px2rem

Color..「Blind」發表於2018-06-27

postcss-px2rem在專案中使用可以進行px自動轉換為rem單位,但其也有利弊如下:

  • 優點:可以實現邊編輯邊轉換,在開發手機網站是可以很 高效率的工作
  • 缺點:在瀏覽器器裡面調式px,並不太方便

但總歸是利大於弊,現在 移動端 還是非常火熱.......

1. 首先需要安裝postcss-plugin-px2rem。

    npm install --save-dev postcss-px2rem
複製程式碼

2. vue結尾檔案引用vue-loader.config.js中的配置

'use strict'
const utils = require('./utils')
const config = require('../config')
const isProduction = process.env.NODE_ENV === 'production'
const sourceMapEnabled = isProduction
  ? config.build.productionSourceMap
  : config.dev.cssSourceMap
  
/*引入postcss-px2rem 通過require的形式*/ 
var px2rem = require('postcss-px2rem');

module.exports = {
  loaders: utils.cssLoaders({
    sourceMap: sourceMapEnabled,
    extract: isProduction,
    
    /*允許使用usePostCSS*/
    usePostCSS:true,
    
  }),
  cssSourceMap: sourceMapEnabled,
  cacheBusting: config.dev.cacheBusting,
  transformToRequire: {
    video: ['src', 'poster'],
    source: 'src',
    img: 'src',
    image: 'xlink:href'
  },
  
  /*配置remUnit*/
  postcss: function() {
    return [px2rem({remUnit: 37.5})];
  }
}
複製程式碼

4. remUnit為1rem應的px值,可以自己進行定義

5. 此時重啟專案發現px的值已經在瀏覽器都換算為rem,但是單位與我們想要不一致。因為rem是根據根元素繼承,所以我們需要去更改根元素的font-size

6.在index.html頁面中引入,設定比例與remUnit相同即可

<script>document.getElementsByTagName('html')[0].style.fontSize = (document.documentElement.clientWidth ||  document.body.clientWidth) /10 + 'px';</script>
複製程式碼

相關文章