1.安裝插件javascript
npm i lib-flexible --save // 載lib-flexible npm install px2rem-loader // 安裝px2rem-loader
2.在main.js中引入lib-flexiblecss
import 'lib-flexible/flexible'
3.在index.html中引入:移動適配meta標籤html
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
4.更改配置vue
在 build/util.js 中 按以下兩更改java
(1)、將px2rem-loader添加到cssLoaders中npm
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方法中添加px2remLoaderecmascript
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.重啓post
npm run dev
以上實現轉換適用於:字體
(1)組件中編寫的<style></style>下的cssflex
(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形式引入,可完美解決移動端適配問題