移动端适配方案之postcss-px-to-viewport
之前做移动端适配时,基本上是采用rem方案,现在发现了一个新的方案,就是用viewport单位,现在
viewport单位越来越受到众多浏览器的支持
postcss-px-to-viewport,将px单位自动转换成viewport单位,用起来超级简单,postcss-px-to-viewport 文档
安装
npm install postcss-px-to-viewport *--save-dev*
引入vue项目,再postcss.config.js引入
1 |
|
参数解析
1 |
|
unitToConvert(String)要转换的单位,默认是’px’viewportWidth(Number)viewport的宽度,默认是320,可根据设计稿来,750的设计稿就写750unitPrecision(Number)指定px转换为视窗单位值的小数位数,默认是5propList(Array)指定可以转换的css属性,默认是[‘*’],代表全部属性进行转换- 精确匹配
- * 代表全部属性
- 在字符串前面或者后面用*,如 [‘position‘] 会匹配background-position-y
- 用!则该属性排除. 如: [‘*’, ‘!letter-spacing’]
- Combine the “not” prefix with the other prefixes. Example: [‘‘, ‘!font‘]
viewportUnit(String)指定需要转换成的视窗单位,默认vwfontViewportUnit(String)指定字体需要转换成的视窗单位,默认vwselectorBlackList(Array)指定不转换为视窗单位的类,保留px,值为string或正则regexp,建议定义一至两个通用的类名- 值为string类型, 检查字符是否包含[‘body’] 匹配 .body-class
- 值为regexp类型,正则匹配[/^body$/]匹配body而不是 .body
minPixelValue(Number)默认值1,小于或等于1px不转换为视窗单位mediaQuery(Boolean)是否在媒体查询时也转换px,默认falsereplace(Boolean)replaces rules containing vw instead of adding fallbacks.exclude(Array or Regexp)设置忽略文件,如node_modules- 如果是regexp, 忽略全部匹配文件.
- 如果是数组array, 忽略指定文件.
可能遇到的问题
@keyframes 和media查询里的px默认是不转化的,设置mediaQuery: true则媒体查询里也会转换px
@keyframes可以暂时手动填写vw单位的转化结果
发布于