Vue3 移动端自适应方案postcss-px-to-viewport

我的环境

依赖名版本
pnpm8.14.0
Node16.20.1
Vue3.3
Vite5.0.8

一、安装

pnpm install postcss-px-to-viewport@1.1.1 --save-dev  

二、配置 vite.config.ts

import postcsspxtoviewport from 'postcss-px-to-viewport'

export default defineConfig({
	css: {
		postcss: {
			plugins: [
				postcsspxtoviewport({
					unitToConvert: 'px', // 要转化的单位
					viewportWidth: 750, // UI设计稿的宽度,如果你的设计稿是375就改成375  
					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/], // 设置忽略文件,用正则做目录名匹配
					landscape: false, // 是否处理横屏情况
				}),
			]
		}
	}
})

提示:如果你的设计稿是375就把750改一下即可。

三、解决 Vant 375 设计尺寸问题

Vant自带是375尺寸的,而我们是750最后插件帮我们转化为375的,也就是我们写的px都是2倍的,如果vant也跟着转化那就是375 / 2,但它不需要转化,所以在转换时我们忽略它。
如果你的设计稿是375,那就不用将忽略vant。

exclude: [/node_modules\/vant/], // 设置忽略文件,用正则做目录名匹配

四、注意:这个自适应插件只会转换内部样式,行内样式不会转换

  • 内部样式:我的设计稿是750,到网页时px经过postcss的处理后自动除以2,等于15px
  • px自动转化为4vw,1vw = 3.75px,4vw * 3.75 = 15px
  • 如果你是375,开发时px则无需乘以2。
<template>
	<div class="testFont">测试1</div>
</template>
<style scoped lang="scss">
.testFont{
	font-size: 30px; 
}
</style>

在这里插入图片描述

  • 行内样式:写多少就是多少
<span style="font-size: 30px">测试2</span>

在这里插入图片描述

参考文章:https://www.cnblogs.com/goloving/p/15238345.html

  • 16
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值