Vue项目屏幕自适应

作者: Spinach | 来源:发表于2020-07-08 10:37 被阅读0次

    一、安装lib-flexible

    npm i lib-flexible -D
    

    二、在main.js中引入

    import 'lib-flexible/flexible'
    

    三、在index.html文件中设置meta标签:

      <meta name='viewport' content='width=device-width , initial-scale=1.0'>
    

    四、然后在项目中写css时会自动将rem转化为px,需要安装px2rem这个工具

    npm i px2rem-loader -D
    

    四、修改配置文件

    4.1有build文件夹

    /build/util.js:
    a、在cssLoader对象下面添加一个px2remLoader对象:

    const px2remLoader = {
        loader : 'px2rem-loader',
        options : {
          //这个参数是通过psd设计稿的  宽度 / 10 来计算,这里以750为标准
          remUnit : 75  
        }
      }
    

    b、然后将utils.js文件中的generateLoaders函数的loaders常量改为[cssLoader, px2remLoader]:


    image.webp.jpg
     const loaders = [cssLoader, px2remLoader];
    

    完成上诉配置后,在开发时,只需要将设计稿上的尺寸写出即可,如font-size:18px;就直接写18px

    4.2 无build文件夹(使用了vue cli3或3以上版本)

    在项目根目录下新建vue.config.js文件

    const cssLoader = {
      loader: 'css-loader',
      options: {
        minimize: process.env.NODE_ENV === 'production',
        sourceMap: options.sourceMap
      }
    }
    // 新增px2remLoader
    const px2remLoader = {
      loader: 'px2rem-loader',
      options: {
        remUnit: 75
      }
    }
    
    function generateLoaders (loader, loaderOptions) {
      // 新增px2remLoader
      const loaders = options.usePostCSS ? [cssLoader, postcssLoader, px2remLoader] : [cssLoader, px2remLoader]
    
      if (loader) {
        loaders.push({
          loader: loader + '-loader',
          options: Object.assign({}, loaderOptions, {
            sourceMap: options.sourceMap
          })
        })
      }
    }
    

    重新启动项目,即可自适应(单位使用px)

    相关文章

      网友评论

        本文标题:Vue项目屏幕自适应

        本文链接:https://www.haomeiwen.com/subject/qzuqcktx.html