移动端元素根据屏幕自适应——postcss-px-to-viewport 插件
postcss-px-to-viewport是一个插件,作用是根据配置将css样式中的px转为vw,配置响应式元素给每个不同的设备
本文借鉴了: https://www.cnblogs.com/zhangnan35/p/12682925.html
安装
npm install postcss-px-to-viewport
使用
Vue中使用
在项目根目录下添加一个.postcssrc.js
文件
module.exports = {
plugins: {
autoprefixer: {}, // 用来给不同的浏览器自动添加相应前缀,如-webkit-,-moz-等等
"postcss-px-to-viewport": {
unitToConvert: "px", // 要转化的单位
viewportWidth: 750, // UI设计稿的宽度
unitPrecision: 6, // 转换后的精度,即小数点位数
propList: ["*"], // 指定转换的css属性的单位,*代表全部css属性的单位都进行转换
viewportUnit: "vw", // 指定需要转换成的视窗单位,默认vw
fontViewportUnit: "vw", // 指定字体需要转换成的视窗单位,默认vw
selectorBlackList: ["wrap"], // 指定不转换为视窗单位的类名,
minPixelValue: 1, // 默认值1,小于或等于1px则不进行转换
mediaQuery: true, // 是否在媒体查询的css代码中也进行转换,默认false
replace: true, // 是否转换后直接更换属性值
exclude: [/node_modules/], // 设置忽略文件,用正则做目录名匹配
landscape: false // 是否处理横屏情况
}
}
};
React中使用
引入
import pxtoviewport from 'postcss-px-to-viewport';
使用
export default defineConfig({
plugins: [react()],
css: {
postcss: {
plugins: [
// 适配不同的设备
pxtoviewport({
unitToConvert: 'px', // 要转换的单位
viewportWidth: 375, // 视图的宽度(设计稿的宽度)
unitPrecision: 5, // 转换后的精度,保留多少位小数
propList: ['*'], // 指定转换的css属性的单位,*代表全部css属性的单位都进行转换
viewportUnit: 'vw', // 转换后的单位
fontViewportUnit: 'vw',
selectorBlackList: [],
minPixelValue: 1, // 转换的最小值(1px其实也会转换)
mediaQuery: false,
replace: true,
exclude: undefined,//设置忽略文件,用正则做目录名匹配
include: undefined,//设置包含文件,用正则做目录名匹配
landscape: false,// 是否处理横屏情况
landscapeUnit: 'vw',//横屏单位
landscapeWidth: 568 //横屏的宽度
})
]}}})
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!