postcss-px-to-viewport移动端新适配方案
之前移动端项目一直用的是pxtorem来实现适配的,但是发现在某些情况下,rem布局会错乱,然后在vant(一款移动端ui框架)给的demo里面发现了这个宝藏插件。
- tip: vant github地址 (里面也有rem适配demo、typescript demo)
1. 简介
postcss-px-to-viewport的原理其实就是把你设置的以px为单位的css属性转换为相应的视口单位。
而视口就是你的浏览器实际显示内容的区域——换句话说就是你的不包括工具栏和按钮的网页浏览器。这些单位分别是 vw
、 vh
、 vmin
和 vmax
。它们都代表了浏览器(视口)尺寸的比例和窗口大小调整产生的规模改变。
- vw:viewpoint width,视窗宽度,1vw=视窗宽度的1%。
- vh:viewpoint height,视窗高度,1vh=视窗高度的1%。
- vmin:vw和vh中较小的那个。
- vmax:vw和vh中较大的那个。
所以页面宽高也可以用height:100vh,width:100vw来表示,等同于height:100%,width:100%。
2. 安装
目前开发主要基于vue,所以以vuecli为例
1 | npm install postcss-px-to-viewport --save-dev |
3. 配置和使用
vuecli3以上在新建项目的时候会在根目录生成一个和vue.config.js同级postcss.config.js的文件
1 | const autoprefixer = require('autoprefixer') |
如果没有生成postcss.config.js文件,也可在vue.config.js里面配置
1 | const autoprefixer = require('autoprefixer'); |
配置好就完工啦,可以通过浏览器查看元素确认一下有没有配置成功, 然后就可以根据设计稿进行开发啦