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

news/2024/7/10 1:20:22 标签: postcss, 前端, javascript, css, vue

我的环境

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

一、安装

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

二、配置 vite.config.ts

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

export default defineConfig({
	css: {
		css>postcss: {
			plugins: [
				css>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经过css>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">css">
.testFont{
	font-size: 30px; 
}
</style>

在这里插入图片描述

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

在这里插入图片描述

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


http://www.niftyadmin.cn/n/5323893.html

相关文章

在钉钉群通过机器人发送信息

在第三方API接口对接中&#xff0c;需要及时获取第三方接口请求结果情况&#xff0c;所以在代码中融合钉钉机器人&#xff0c;对请求的异常结果及时发送通知。 自定义机器人参考链接通用响应参数-封装API的错误码 public interface IErrorCode {long getCode();String getMess…

余弦相似度的计算以及公式

公式&#xff1a; 思想&#xff1a;余弦相似度的思想是通过计算两个向量之间的余弦值来衡量它们的相似程度。如果两个向量之间的夹角越小&#xff0c;它们的余弦值就越接近1&#xff0c;也就意味着它们越相似。而如果它们的夹角越大&#xff0c;余弦值就越接近0&#xff0c;也就…

【Linux】线程池实现

&#x1f4d7;线程池实现&#xff08;单例模式&#xff09; 1️⃣线程池概念2️⃣线程池代码样例3️⃣部分问题与细节&#x1f538;类成员函数参数列表中隐含的this指针&#x1f538;单例模式&#x1f538;一个失误导致的bug 4️⃣调用线程池完成任务 1️⃣线程池概念 线程池是…

NLP论文阅读记录 - WOS | ROUGE-SEM:使用ROUGE结合语义更好地评估摘要

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.相关工作三.本文方法四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4.6 细粒度分析 五 总结 前言 ROUGE-SEM: Better evaluation of summarization using ROUGE combin…

树莓派ubuntu22桌面配置(一)

烧录系统至树莓派 下载系统&#xff1a;https://ubuntu.com/download/raspberry-pi 选择合适的版本下载 镜像安装器安装&#xff1a;终端输入&#xff1a; sudo snap install rpi-imager 打开镜像安装器&#xff0c;按照需求选择树莓派版本与要写入的系统还有安装的u盘 方案…

【python、nlp】文本预处理

文本预处理及其作用&#xff1a; 文本语料在输送给模型前一般需要一系列的预处理工作&#xff0c;才能符合模型输入的要求&#xff0c;如&#xff1a;将文本转化成模型需要的张量&#xff0c;规范张量的尺寸等&#xff0c;而且科学的文本预处理环节还将有效指导模型超参数的选…

如何自动化部署和发布系统?

如何自动化部署和发布系统&#xff1f; 自动化部署和发布系统可以帮助开发人员更高效地部署和发布代码&#xff0c;减少手动操作的风险和错误。以下是一些自动化部署和发布系统的基本步骤&#xff1a; 选择合适的工具&#xff1a;选择适合你的项目和团队需求的自动化部署和发…

【并发编程】锁

目录 1、锁的分类 1.1 可重入锁、不可重入锁 1.1.1 定义 1.2 乐观锁、悲观锁 1.2.1 定义 1.3 公平锁、非公平锁 1.3.1 定义 1.4 互斥锁、共享锁 1.4.1 定义 2、synchronized 2.1 类锁,对象锁 2.2 synchronized 优化 2.3 synchronized实现原理 2.4 synchronized的…