2025年02月20日 建站教程
vuejs项目如何实现移动端适配,下面web建站小编给大家简单介绍2种适配方法!
方法一:利用lib-flexible插件
安装脚手架
npm i lib-flexible --save // 载lib-flexible npm install px2rem-loader // 安装px2rem-loader
在main.js中引入lib-flexible
import 'lib-flexible/flexible'
移动适配meta标签,index.html
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
在build/util.js引入px2rem相关代码
const cssLoader = {
  loader: 'css-loader',
  options: {
    minimize: process.env.NODE_ENV === 'production',
    sourceMap: options.sourceMap
  }
}
const px2remLoader = {
  loader: 'px2rem-loader',
  options: {
    //一般设置75
    remUnit: 35
  }
}
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)
  }
}
//1、lib-flexible:是 rem 的适配插件。(例:750px == 10rem)
//2、px2rem-loader :是为了方便在书写CSS时,输入 px 会 自动转为 rem。
//3、有时 用 ‘px2rem-loader ’ 插件,发现 rem 转换不正确。
方法二:利用rem布局
在index.html引入
<script>
(function () {
  // 在标准 375px 适配下,100px = 1rem;
  var baseFontSize = 100;  
  var baseWidth = 375;
  var set = function () {
    var clientWidth = document.documentElement.clientWidth || window.innerWidth;
    var rem = 100;
    if (clientWidth != baseWidth) {
      rem = Math.floor(clientWidth / baseWidth * baseFontSize);
    }
    document.querySelector('html').style.fontSize = rem + 'px';
  }
  set();
  window.addEventListener('resize', set);
}());
</script>
			
                                        本文链接:http://so.lmcjl.com/news/23522/