vue移动端适配

移动端项目,最麻烦的就是去写适配,我们都知道使用viewport

 

最近写了一个移动的项目推广,收到大佬的推荐,开始使用新的淘宝适配插件 

http://g.tbcdn.cn/mtb/lib-flexible/0.3.4/??flexible_css.js,flexible.js

使用方法也很简单,直接贴步骤:


2:他是基于font-size:75px;
所以我们的css样式  测量的px/75 就是我们想要的rem
.text{
    width:200px;
    height:200px;
}
 转为rem
.text{
    width:2.6rem;
    height:2.6rem;
}
以上就是使用方法啦~也可以本地引入先从git 上拉去下来哦~

但是这样对于比较小的移动端项目来说还可以计算,如果是很大的项目,我们的开发效率这样在进行计算就会很低了

这样的时候,就需要,配合 px2rem 来使用,可以对我们的px 值进行转化,最常见的就是vue 项目

1:安装
npm i lib-flexible 

2: 在main.js 中引入

import 'lib-flexible/flexible'

3:安装px2rem

npm i px2rem-loader

4: 在build / utils.js 中配置

exports.cssLoaders = function (options) {
  options = options || {}

  const cssLoader = {
    loader: 'css-loader',
    options: {
      sourceMap: options.sourceMap
    },
  }

  const px2remLoader = {
    loader: 'px2rem-loader',
    options: {
      remUint: 75
    }
  }

  const postcssLoader = {
    loader: 'postcss-loader',
    options: {
      sourceMap: options.sourceMap
    }
  }

  // generate loader string to be used with extract text plugin
  function generateLoaders (loader, loaderOptions) {
    const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader,px2remLoder]
    

    
    if (options.usePostCSS) {
        loaders.push(postcssLoader)
    }

    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,
        publicPath:'../../',
        fallback: 'vue-style-loader'
      })
    } else {
      return ['vue-style-loader'].concat(loaders)
    }
  }

这样的话,我们只需要把我们的测量值写入css 中就可以了,让下看哦~

我们的测量值是多少直接就写多少
.box{
    width: 150px;
    font-size: 28px; 
    border: 1px solid #ddd; 
}

配置好以后,

.box{
    width: 2rem;
    border: 1px solid #ddd;
}
[data-dpr="1"] .selector {
    font-size: 14px;
}
[data-dpr="2"] .selector {
    font-size: 28px;
}
[data-dpr="3"] .selector {
    font-size: 42px;
}
会对不同是屏幕进行转换

好啦~这样一个完整的移动适配就可以很完美的结束了~亲测有效哦~正在前端路上探索的小伙伴们~继续分享~继续加油

你可能感兴趣的:(前端)