vue-cli3項(xiàng)目VW適配---整理

近些年移動(dòng)端的強(qiáng)勢崛起,導(dǎo)致移動(dòng)端適配越來越重要,個(gè)人之前一直使用的是手淘的Flexible進(jìn)行適配,附上鏈接《使用Flexible實(shí)現(xiàn)手淘H5頁面的終端適配》,但是發(fā)現(xiàn)并不是非常完美,給力的是大漠老師寫了一篇《如何在Vue項(xiàng)目中使用vw實(shí)現(xiàn)移動(dòng)端適配》,比較完美的解決了適配問題,下面是自己動(dòng)手搭建后的一些整理。

創(chuàng)建項(xiàng)目

//vue-cli 3.0+ 版本
vue init webpack vue-vw-demo
cd  vue-vw-demo

安裝必要插件

cnpm i postcss-aspect-ratio-mini postcss-px-to-viewport postcss-write-svg postcss-cssnext postcss-viewport-units cssnano postcss-import postcss-url --S

配置根目錄下的postcss.config.js

module.exports = {
  "plugins": {
    "postcss-import": {},
    "postcss-url": {},
    "postcss-aspect-ratio-mini": {},
    "postcss-write-svg": { utf8: false },
    "postcss-cssnext": {},
    "postcss-px-to-viewport": {
      viewportWidth: 750, // 視窗的寬度,對應(yīng)的是我們設(shè)計(jì)稿的寬度,一般是750 
      viewportHeight: 1334, // 視窗的高度,根據(jù)750設(shè)備的寬度來指定,一般指定1334,也可以不配置 
      unitPrecision: 3, // 指定`px`轉(zhuǎn)換為視窗單位值的小數(shù)位數(shù)(很多時(shí)候無法整除) 
      viewportUnit: 'vw', // 指定需要轉(zhuǎn)換成的視窗單位,建議使用vw 
      selectorBlackList: ['.ignore', '.hairlines'], // 指定不轉(zhuǎn)換為視窗單位的類,可以自定義,可以無限添加,建議定義一至兩個(gè)通用的類名 
      minPixelValue: 1, // 小于或等于`1px`不轉(zhuǎn)換為視窗單位,你也可以設(shè)置為你想要的值 
      mediaQuery: false // 允許在媒體查詢中轉(zhuǎn)換`px` 
    },
    "postcss-viewport-units":{},
    "cssnano": {
      preset: "advanced",
      autoprefixer: false,
      "postcss-zindex": false
     }
  }
}

兼容 vw

//在index.html添加js
<script src="http://g.alicdn.com/fdilab/lib3rd/viewport-units-buggyfill/0.6.2/??viewport-units-buggyfill.hacks.min.js,viewport-units-buggyfill.min.js"></script>
//在index.html中調(diào)用viewport-units-buggyfill
<script> 
  window.onload = function () { 
    window.viewportUnitsBuggyfill.init({ 
      hacks: window.viewportUnitsBuggyfillHacks 
    });
  } 
//防止某些瀏覽器對img處理了content導(dǎo)致不顯示,reset.css添加
img { 
  content: normal !important; 
}
</script>

配置scss

cnpm install node-sass --save-dev
cnpm install sass-loader --save-dev

./build/webpack.base.config.js添加如下配置

module.exports = {
  module: {
    rules: [
      ...
      {
        test: /\.scss$/,
        loaders: ["style", "css", "sass"]
      }
    ]
  }
}

Tip:組件中使用,記得加上lang='scss'。

最后運(yùn)行cnpm run dev啟動(dòng)項(xiàng)目,最后還是推薦看一看大漠老師的原文《如何在Vue項(xiàng)目中使用vw實(shí)現(xiàn)移動(dòng)端適配》,原文寫的很清楚,對各個(gè)插件也進(jìn)行了解釋,相信你看了會有收獲。

END

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容