vue-cli 2.x和3.x配置移动端适配px自动转为rem

摘要:
移动适应一直是一个大问题,现在有各种解决方案,例如rem和vw百分比。然而,对于成熟的剪切,rem更容易编写,这些剪切与根元素的字体大小成相等的比例计算。后来,淘宝的lib flexible和现在的postss在编写时都是为px编写的,将自动转换为rem。现在让我们来看看如何配置vue-cli2.x和3.x vue-cli2.x1。安装取决于npminstallpx2rem加载器--save devnpminstalllib flexible--save 2.在src/main中导入“lib flexile”。js;3.内置/utils。js,添加以下代码导出。cssLoaders=函数{//…constpx2remLoader={loader:“px2rem loader”,选项:{remUnit:75}}}}//…functiongenerateLoaders{//添加px2remLoader constloaders=选项。是否将PostCSS添加到原始加载器?

移动端适配一直都是个大问题,现在也出现了各种各样的解决方案,比如 rem, vw 百分比等,但是比较成熟的切比较容易编写的还是 rem,他是相对于根元素的 font-size 进行等比例计算的。

但是我们在编写css的时候,需要计算每一个元素相对于根元素的rem值是多少。会比较麻烦,并且维护起来也不方便。那么社区也出现了各种解决方案。

早期的解决方案是利用 sass 或者less编写函数进行自动转换。到后来淘宝的lib-flexible,再到现在的 postcss,都是为了编写的时候写的是px,会自动转为 rem。下面我们就来看下vue-cli2.x 和 3.x 如何去配置。

vue-cli2.x

1. 安装依赖

npm install px2rem-loader --save-dev
npm install lib-flexible --save

2. 在 src/main.js 中引入

import 'lib-flexible';

3. 在 build/utils.js 中加入以下代码

exports.cssLoaders = function (options) {
  // ...
  const px2remLoader = {
    loader: 'px2rem-loader',
    options: {
        remUnit: 75
    }
  }
  // ...
  function generateLoaders (loader, loaderOptions) {
    // 在原来的loader添加上px2remLoader
    const loaders = options.usePostCSS ? [cssLoader, postcssLoader, px2remLoader] : [cssLoader, px2remLoader]
    // ...
  }
}

4. 如果想要页面的viewport缩放则需要将 index.html 中注释掉原来的设置

<meta name="viewport" content="width=device-width,initial-scale=1.0">
<!-- 
  官方上说是要把这里注释掉
  此处注释掉之后,lib-flexible 会根据不同的屏幕自动添加,比如2倍屏这里就是 0,5
  
  但是,我这用的时候有点坑。。
    如果将此注释掉,在某些需要写 px 的地方,就会出现在不同的屏幕上看到的 大小不一样的问题,因为缩放的比例不同了。比如富文本渲染,就得用px
    解决办法是使用不注释此代码,在任何手机上都是按照1倍进行缩放。。px2remloader会自动计算,不会有问题
 这里看各自项目的需要吧
-->

vue-cli 3.x

1. 下载依赖

npm install postcss-pxtorem --save-dev // 此处和2.x 不一样的插件
npm install lib-flexible --save

2. 在 src/main.js 中引入

import 'lib-flexible/flexible.js'; // 此处和2.x不一样

3. 在package.json中配置

// 在最后添加此脚本
{
  "postcss": {
    "plugins": {
      "autoprefixer": {},
      "postcss-pxtorem": {
        "rootValue": 75,
        "propList": [
          "*"
        ]
      }
    }
  }
}

4. 如果想要页面的viewport缩放则需要将 public/index.html 中注释掉原来的设置, 通上面的第四步

demo 可参考本人的配置

cli2.x: https://github.com/Shenjieping/app-cli

cli3.x: https://github.com/Shenjieping/app-cli-v3

免责声明:文章转载自《vue-cli 2.x和3.x配置移动端适配px自动转为rem》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇WebService 的Description 属性说明(转)微信公众平台token设置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

移动端适配插件(flexible.js)

;(function(win, lib) { var doc = win.document; var docEl = doc.documentElement; var metaEl = doc.querySelector('meta[name="viewport"]'); var flexibleEl = doc.quer...

robocopy局域网拷贝

robocopy "D:Backup" "F:Backup" /E /maxage:1 /log+:"D:Backup\%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.txt" 局域网拷贝 rem 实现远程拷贝的批处理代码 rem 开始copy @echo off SET...

Ext Js简单面板及工具栏的创建使用

面板是比较基础的组件,很多的组件都是在Panel的基础上封装、创建的,可以把面板理解为一个容器,可以存放一些更多的组件在里面让页面更好看、功能更完善。1.对于Panel中的tbar\bbar\buttons的创建使用(其中和下文中的divId即为页面中一个div标签的id) functiontestPanel1(divId) { var testP...

网页在pc端与移动端的兼容问题

一、浏览器的默认font-size 火狐,谷歌,IE默认16px 二、根元素的font-size设置 1、许多方法测试所得(网上)兼容电脑浏览器缩放的html {    font-size: 62.5%;}@media only screen and (min- 481px){    html {        font-size: 94%!importa...

手机页面尺寸设置(一)

参考:http://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/quick-tip-dont-forget-the-viewport-meta-tag/ 一、网页手机wap2.0网页的head里加入下面这条元标签,在iPhone的浏览器中页面将以原始大小显示,并不允许缩放。 其中: width -...

SVN 取消版本控制并添加至忽略列表

忽略已经版本控制的文件忽略文件和目录 起因:   由于项目中的IDE Jdeveloper在某些指定目录下面会生成server.xml以及common文件夹,且包含一个名为bc4j.xcfg的文件,每次当IDE设置发生变化,或者新建某些目录,这些文件都会被修改或者新增,而我不愿意将这些变化体现在SVN提交列表中.   正如SVN官方指南所言:如果你不小...