vue移動端適配


1.安裝插件

npm i lib-flexible --save        // 載lib-flexible
npm install px2rem-loader        // 安裝px2rem-loader

  2.在main.js中引入lib-flexible

import 'lib-flexible/flexible'

  3.在index.html中引入:移動適配meta標簽

<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">

  4.更改配置

  在 build/util.js 中 按如下兩更改

  (1)、將px2rem-loader添加到cssLoaders中

  const cssLoader = {
    loader: 'css-loader',
    options: {
      minimize: process.env.NODE_ENV === 'production',
      sourceMap: options.sourceMap
    }
  }
  const px2remLoader = {
    loader: 'px2rem-loader',
    options: {
      //一般設置75
      remUnit: 37.5 // 37.5按照375設計圖尺寸在設計,75安裝750設計圖尺寸設計
    }
  }

  (2)、在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
        })
      })
    }

    // Extract CSS when that option is specified
    // (which is the case during production build)
    if (options.extract) {
      return ExtractTextPlugin.extract({
        use: loaders,
        fallback: 'vue-style-loader'
      })
    } else {
      return ['vue-style-loader'].concat(loaders)
    }
  }

  5.重啟

npm run dev

 

以上實現轉換適用於:

(1)組件中編寫的<style></style>下的css

(2)從index.js或者main.js中import ‘../../static/css/reset.css’引入css

(3)在組件的<script type=”text/ecmascript-6″> import ‘../../static/css/reset.css'</script>中引入css

另外的情況不適用:

(1)組件<style></style>中@import “../../static/css/reset.css (可考慮上面(2)、(3)的形式引入)

(2)外部樣式:<link rel=”stylesheet” href=”static/css/reset.css”>

(3)元素內部樣式:style=”height: 417px; width: 550px;”

另外我要補充的是:在做移動端適配的時候我們不建議給字體也設置rem的單位,針對這種情況,我為字體適配的解決方案是使用媒體查詢,文件以組件<style></style>中@import “../../static/css/reset.css形式引入,可完美解決移動端適配問題


免責聲明!

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



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