vue3使用postcss-px-to-viewport 附带vite配置
postcss-px-to-viewport做前端自适应,适用于pc和移动
注意 ⚠️:
1、直接在dom元素上使用 style 是不会被转换的
2、用类选择器、id选择器等才会被转换
3、element-ui、vant-ui 等UI组件库 默认会被转换
1.下载 postcss-px-to-viewport 插件
npm i postcss-px-to-viewport --save-dev
2.在vite.config.ts中添加配置
第一种配置:
import pxtovw from 'postcss-px-to-viewport' const loder_pxtovw = pxtovw({ //这里是设计稿宽度 自己修改 viewportWidth: 1920, viewportUnit: 'vw' }) export default defineConfig({ plugins: [vue()], css: { postcss: { plugins: [loder_pxtovw] } } })
第二种配置:
postcss: { plugins: [ require("postcss-px-to-viewport")({ unitToConvert: "px",// 要转化的单位 viewportWidth: 750,// UI设计稿的宽度 unitPrecision: 3,// 转换后的精度,即小数点位数 propList: [ "*" ],// 指定转换的css属性的单位,*代表全部css属性的单位都进行转换 viewportUnit: "vw",// 指定需要转换成的视窗单位,默认vw fontViewportUnit: "vw",// 指定字体需要转换成的视窗单位,默认vw landscapeUnit: 'vh',// 横屏时使用的单位 landscapeWidth: 667,// 横屏时使用的视口宽度 selectorBlackList: [],// 指定不转换为视窗单位的类名 minPixelValue: 1,// 默认值1,小于或等于1px则不进行转换 mediaQuery: false,// 是否在媒体查询的css代码中也进行转换,默认false replace: true,// 是否转换后直接更换属性值 // landscape: false, // 是否处理横屏情况 exclude: /(\/|\\)(node_modules)(\/|\\)/, // 设置忽略文件,用正则做目录名匹配 }) ] }