postcss-px-to-viewportopen in new window 将px单位转换为视口单位的 (vw, vh, vmin, vmax) 的 PostCSS 插件。如果你的样式需要做根据视口大小来调整宽度,这个脚本可以将你CSS中的px单位转化为vw,1vw等于1/100视口宽度。

###安装

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

###使用

// vite.config.js
import vue from '@vitejs/plugin-vue2';
import pxtovw from 'postcss-px-to-viewport';
const loder_pxtovw = pxtovw({
  unitToConvert: 'px', // 要转化的单位
  viewportWidth: 750, // 视窗的宽度,对应的是我们设计稿的宽度,一般是750
  viewportHeight: 1334, // 视窗的高度,对应的是我们设计稿的高度,一般是1334
  unitPrecision: 5, // 指定`px`转换为视窗单位值的小数位数(很多时候无法整除)
  viewportUnit: 'vw', // 指定需要转换成的视窗单位,建议使用vw
  selectorBlackList: ['.ignore', '.hairlines'], // 指定不转换为视窗单位的类,可以自定义,可以无限添加,建议定义一至两个通用的类名
  minPixelValue: 1, // 小于或等于`1px`不转换为视窗单位,你也可以设置为你想要的值
  mediaQuery: false, // 允许在媒体查询中转换`px`
  exclude: [/node_modules/], // 忽略某些文件夹下的文件或特定文件,例如 'node_modules' 下的文件
  landscape: false, // 是否添加根据 landscapeWidth 生成的媒体查询条件 @media (orientation: landscape)
  landscapeUnit: 'vw', // 横屏时使用的单位
  landscapeWidth: 568 // 横屏时使用的视窗宽度
})

export default {
  plugins: [
    vue(),
  ],
  css: {
    postcss: {
      plugins: [loder_pxtovw]
    }
  },
}
Last Updated:
Contributors: pengrengui