vue移动端适配

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

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

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

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

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

<script src="http://g.tbcdn.cn/mtb/lib-flexible/0.3.4/??flexible_css.js,flexible.js"></script>
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;
}
会对不同是屏幕进行转换

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

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值