npm i lib-flexible --save-dev
import 'lib-flexible/flexible'
npm install px2rem-loader --save-dev
const cssLoader = { loader: 'css-loader', options: { minimize: process.env.NODE_ENV === 'production', sourceMap: options.sourceMap } } const px2remLoader = { loader: 'px2rem-loader', options: { remUnit: 75 } }
同时,在generateLoaders方法中添加px2remLoadercss
function generateLoaders (loader, loaderOptions) { const loaders = [cssLoader,px2remLoader] if (loader) { loaders.push({ loader: loader + '-loader', options: Object.assign({}, loaderOptions, { sourceMap: options.sourceMap }) }) }
5.在vue的项目的根目录中打开 /src/HelloWorld.vue 文件,把template里面的东西全干掉,写上如下这些代码:vue
<template> <div class="hello"> 适配移动端 </div> </template> <script> export default { name: 'HelloWorld', data () { return { msg: 'Welcome to Your Vue.js App' } } } </script> <!-- Add "scoped" attribute to limit CSS to this component only --> <style scoped> .hello { width: 200px; height: 200px; font-size: 36px; margin: 0 auto; box-sizing: border-box; border: 1px solid green; } </style>
在这里,咱们设置了一个div的宽度是200px,接下来咱们来查看div在不一样分辨率手机下显示的状况
iPhone6(屏幕宽度为375px)java
iPhone6px(屏幕宽度为414px)webpack
iPhone5web
注意:vue-cli
1.此方法只能将.vue文件style标签中的px转成rem,不能将script标签和元素style里面定义的px转成remnpm
2.若是在.vue文件style中的某一行代码不但愿被转成rem,只要在后面写上注释 /* no*/就能够了flex
1.使用了vue的lib-flexible后,给div设置了一个宽度,它会跟手机分辨率大小自动调节ui
2.当设置手机屏幕大小为375时,它的宽度是100px,说明设计稿是按照750px来设计的,375恰好是一半this