px2rem-loader與postcss-pxtorem

1.下載lib-flexible

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

npm i lib-flexible --save

2.引入lib-flexible

在main.js中引入lib-flexible

import 'lib-flexible/flexible'

3.設置meta標簽

通過meta標簽镊折,設置設備寬度以及縮放比例

<meta name="viewport" content="width=device-width, initial-scale=1.0">

4.安裝px2rem-loader

npm install px2rem-loader

5.配置px2rem-loader

這里是重要的一步~~

在build文件中找到util.js,將px2rem-loader添加到cssLoaders中着降,如:

const cssLoader = {
    loader: 'css-loader',
    options: {
      minimize: process.env.NODE_ENV === 'production',
      sourceMap: options.sourceMap
    }
  }
  **const px2remLoader = {
    loader: 'px2rem-loader',
    options: {
      remUnit: 75
    }
  }

同時撕氧,在generateLoaders方法中添加px2remLoader


function generateLoaders (loader, loaderOptions) {
  **const loaders = options.usePostCSS ? [cssLoader, postcssLoader, px2remLoader] : [cssLoader, px2remLoader]**

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

if (options.extract) {
  return ExtractTextPlugin.extract({
  use: loaders,
  fallback: 'vue-style-loader'
  })
  } else {
  return ['vue-style-loader'].concat(loaders)
  }
}

6.重啟,一切ok~

當配置完之后易结,只需要重啟下服務精算,就自動轉化為rem了

postcss-pxtorem

npm install -D postcss-pxtorem

postcss.config.js

module.exports = {
  plugins: {
    autoprefixer: {},
    'postcss-pxtorem': {
      // 假設設計稿的寬度為750px瓢宦,font-size的基準值為16px
      // 動態(tài)設置html的font-size
      // 在寬度375的iPhone6下開發(fā),rootValue值通過公式可設置為50px
      /*
      (function (doc) {
        console.log(doc);
        var timeoutAdjust = null;
        var adjust = function () {
          var idealViewWidth = window.screen.width;
          var BASEVALUE = 750;
          doc.documentElement.style.fontSize = (idealViewWidth / BASEVALUE) * 100 + 'px';
        };
        adjust();
        window.addEventListener('resize', function () {
          clearTimeout(timeoutAdjust);
          timeoutAdjust = setTimeout(adjust, 50);
        }, false);
      } (document));
      */
      rootValue: 50, // 根元素字體大小(Number)
      unitPrecision: 5, // 允許REM單位增長的十進制數(shù)灰羽,即小數(shù)點后可帶多少位
      // 需要替換的屬性
      propList: ['font', 'font-size', 'line-height', 'letter-spacing'],
      // 需要排除轉換的css選擇器
      selectorBlackList: ['wx'],
      // 替換包含rems的規(guī)則驮履,而不是添加回退
      replace: true,
      // 允許在媒體查詢中轉換px
      mediaQuery: false,
      // 設置要替換的最小像素值
      minPixelValue: 0
    }
  }
}

說明
1. `rootValue` (Number)根元素字體大小。
2. `unitPrecision` (Number)允許REM單位增長的十進制數(shù)谦趣。
3. `propList` (Array)可以從px更改為rem的屬性疲吸。
   - 值必須完全匹配。
   - 使用通配符`*`匹配所有屬性前鹅。例:`['*']`
   - `*`在單詞的開頭或結尾使用摘悴。( `['*position*']` 會匹配background-position-y)
   - `!`用于不匹配這個屬性。例:`['*', '!letter-spacing']`舰绘,除了不會轉換`letter-spacing`的px為rem蹂喻,其他的都會轉換葱椭。
   - 將`!`前綴與其他前綴組合在一起口四。例:`['*', '!font*']`
4. `selectorBlackList` (Array)要忽略的選擇器并保留為px孵运。
   - 如果value是string,則檢查selector是否包含字符串蔓彩。
   - `['body'] `會匹配 `.body-class`
   - 如果value是regexp治笨,它會檢查選擇器是否與正則表達式匹配。
   - `[/^body$/]`會匹配`body`但不會`.body`赤嚼。
5. `replace` (Booleam)替換包含rems的規(guī)則旷赖,而不是添加回退。
6. `mediaQuery` (Booleam)允許在媒體查詢中轉換px更卒。
7. `minPixelValue` (Number)設置要替換的最小像素值等孵。
···

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蹂空,隨后出現(xiàn)的幾起案子俯萌,更是在濱河造成了極大的恐慌,老刑警劉巖上枕,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咐熙,死亡現(xiàn)場離奇詭異,居然都是意外死亡姿骏,警方通過查閱死者的電腦和手機糖声,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來分瘦,“玉大人,你說我怎么就攤上這事琉苇〕懊担” “怎么了?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵并扇,是天一觀的道長去团。 經(jīng)常有香客問我,道長穷蛹,這世上最難降的妖魔是什么土陪? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮肴熏,結果婚禮上鬼雀,老公的妹妹穿的比我還像新娘。我一直安慰自己蛙吏,他們只是感情好源哩,可當我...
    茶點故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布鞋吉。 她就那樣靜靜地躺著,像睡著了一般励烦。 火紅的嫁衣襯著肌膚如雪谓着。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天坛掠,我揣著相機與錄音赊锚,去河邊找鬼。 笑死屉栓,一個胖子當著我的面吹牛舷蒲,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播系瓢,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼阿纤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了夷陋?” 一聲冷哼從身側響起欠拾,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎骗绕,沒想到半個月后藐窄,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡酬土,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年荆忍,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撤缴。...
    茶點故事閱讀 38,683評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡刹枉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出屈呕,到底是詐尸還是另有隱情微宝,我是刑警寧澤,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布虎眨,位于F島的核電站蟋软,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏嗽桩。R本人自食惡果不足惜岳守,卻給世界環(huán)境...
    茶點故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望碌冶。 院中可真熱鬧湿痢,春花似錦、人聲如沸种樱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至害幅,卻和暖如春消恍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背以现。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工狠怨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人邑遏。 一個月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓佣赖,卻偏偏與公主長得像,于是被迫代替她去往敵國和親记盒。 傳聞我的和親對象是個殘疾皇子憎蛤,可洞房花燭夜當晚...
    茶點故事閱讀 43,566評論 2 349

推薦閱讀更多精彩內(nèi)容