移动端样式适配(postcss-px-to-viewport)

1,138 阅读1分钟

在移动端的相关开发中,肯定会遇到的一个问题就是,样式适配不同的机型,而我想到的是通过vw、vh来进行适配。
本文主要使用 postcss-px-to-viewport 来进行适配,它是一款将px单位转换为视口单位的 (vw, vh, vmin, vmax) 的 PostCSS 插件

安装

使用npm安装

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

yarn进行安装

$ yarn add -D postcss-px-to-viewport
配置参数

使用方法也很简单,在相应的config文件中配置即可,我自己使用的是vite,所以是在vite.config.ts中配置

export default defineConfig({
  plugins: [vue(), vueJsx()],
  css: {
    postcss: {
      plugins: [
        postcsspxtoviewport({
          unitToConvert: 'px', // 要转化的单位
          viewportWidth: 375, // UI设计稿的宽度
          unitPrecision: 6, // 转换后的精度,即小数点位数
          propList: ['*'], // 指定转换的css属性的单位,*代表全部css属性的单位都进行转换
          viewportUnit: 'vw', // 指定需要转换成的视窗单位,默认vw
          fontViewportUnit: 'vw', // 指定字体需要转换成的视窗单位,默认vw
          selectorBlackList: ['ignore-'], // 指定不转换为视窗单位的类名,
          minPixelValue: 1, // 默认值1,小于或等于1px则不进行转换
          mediaQuery: true, // 是否在媒体查询的css代码中也进行转换,默认false
          replace: true, // 是否转换后直接更换属性值
          // exclude: [/node_modules/], // 设置忽略文件,用正则做目录名匹配
          exclude: [],
          landscape: false // 是否处理横屏情况
        })
      ]
    }
  },
 )}

第二步 在env.d.ts文件中创建声明文件

declare module 'postcss-px-to-viewport'

此时跑起项目就会打开源代码即可发现 px已经替换为vw、vh了