vue2.0_移动端自适应布局之 postcss-px-to-viewport(兼容vant-ui)

前言

  一般我们在做vue的移动端项目时,为了能够自适应不同分辨率,就需要根据UI设计稿的宽高进行px与rem、em的比例换算。但是这样做非常繁琐,为了解决这个问题,我们直接使用当前比较流行的插件 postcss-px-to-viewport 去配置相应的属性来进行自适应布局的构建。

关于px、em、rem的区别详解可点击此处了解

postcss-px-to-viewport(将px单位自动转换成viewport单位)

安装插件

npm install postcss-px-to-viewport --save

在项目根目录中找到或者创建 .postcssrc.js 文件,添加如下的配置:

module.exports = {
  "plugins": {
    "postcss-import": {},
    "postcss-url": {},
    "postcss-aspect-ratio-mini": {},//用来处理元素容器宽高比
    "postcss-write-svg": {//用于处理1px问题
      utf8: false
    },
    "postcss-cssnext": {},//让我们能使用CSS未来的特性
    "postcss-px-to-viewport": {
      viewportWidth: 375, // 视窗的宽度,对应的是我们设计稿的宽度,一般是750 (因为第三方控件适配所以 除以二 设置为 375)
      viewportHeight: 667, // 视窗的高度,根据750设备的宽度来指定,一般指定1334,也可以不配置 (因为第三方控件适配所以 除以二 设置为 667)
      unitPrecision: 3, // 指定`px`转换为视窗单位值的小数位数(很多时候无法整除)
      viewportUnit: 'vw', // 指定需要转换成的视窗单位,建议使用vw
      selectorBlackList: ['.ignore', '.hairlines'], // 指定不转换为视窗单位的类,可以自定义,可以无限添加,建议定义一至两个通用的类名
      minPixelValue: 1, // 小于或等于`1px`不转换为视窗单位,你也可以设置为你想要的值
      mediaQuery: false // 允许在媒体查询中转换`px`
    },
    "postcss-viewport-units":{//用来处理伪类
      filterRule: rule => rule.selector.includes('::after') && rule.selector.includes('::before') && rule.selector.includes(':after') && rule.selector.includes(':before')
    },
    "cssnano": {//主要用来压缩和清理CSS代码
      preset: "advanced",
      autoprefixer: false,
      "postcss-zindex": false
    },
  }
}

注意:我这边仅仅只是下载了postcss-px-to-viewport插件,大家只要看postcss-px-to-viewport部分就可以了。其它的仅仅只是帮大家扩展一下,如果需要用到的,就要下载相应插件。

下一节内容:前端跨域解决方案值proxy代理,感兴趣的小伙伴可以了解下!!!

你可能感兴趣的:(Vue2.0,前端)