当前位置: 首页 > news >正文

vue3项目怎么适配不同尺寸的屏幕?

方案一:REM 布局 + 动态基准字体大小(推荐)

通过 PostCSS 将 px 转换为 rem,并根据屏幕宽度动态调整根元素字体大小,实现等比缩放。

步骤 1:安装依赖 

pnpm add -D postcss postcss-pxtorem @unocss/postcss

步骤 2:配置 PostCSS(postcss.config.js 

module.exports = {plugins: ['@unocss/postcss', // 处理 UnoCSS 规则['postcss-pxtorem', // px → rem 转换{rootValue: 16, // 基准字体大小(设计稿为 16px 时的 rem 计算基准)propList: ['*'], // 转换所有属性exclude: /node_modules/i, // 排除 node_modules},],],
}
步骤 3:添加动态字体大小脚本

在入口 HTML 文件中添加 JS 代码,根据屏幕宽度动态计算根字体大小:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>UnoCSS 适配示例</title><script>// 基准设计稿宽度(如 1920px 桌面端或 375px 移动端)const baseWidth = 1920;// 基准字体大小(对应设计稿宽度的根字体大小)const baseFontSize = 16;function setRemUnit() {const width = Math.min(window.innerWidth, 1920); // 最大宽度限制const rem = (width / baseWidth) * baseFontSize;document.documentElement.style.fontSize = `${rem}px`;}// 初始化setRemUnit();// 窗口大小变化时重新计算window.addEventListener('resize', setRemUnit);</script>
</head>
<body><!-- 页面内容 -->
</body>
</html>

步骤 4:配置 UnoCSS 响应式断点 

// uno.config.ts
import { defineConfig } from 'unocss'export default defineConfig({theme: {breakpoints: {sm: '640px',  // 小屏幕md: '768px',  // 平板lg: '1024px', // 桌面xl: '1280px', // 大屏幕},},
})
效果
  • 设计稿中 16px → 自动转换为 1rem
  • 屏幕宽度变化时,根字体大小动态调整,所有 rem 单位元素等比缩放
  • 结合 UnoCSS 响应式类(如 md:text-lg)进一步优化布局

 

 

 

 

http://www.xdnf.cn/news/918415.html

相关文章:

  • 计算机组成与体系结构:补码数制二(Complementary Number Systems)
  • FFmpeg 实现 100 台设备同屏的高效码流压缩
  • Python-进程
  • Playwright自动化测试全栈指南:从基础到企业级实践(2025终极版)
  • 柯尼卡美能达Konica Minolta bizhub 205i打印机信息
  • 线程池封装
  • ubuntu 22.04虚拟机配置静态IP
  • springBoot 通过模板导出Excel文档的实现
  • 几种简单的排序算法(C语言)
  • clickhouse 和 influxdb 选型
  • 【Android】浅析View.post()
  • rec_pphgnetv2完整代码学习(二)
  • 机器学习监督学习实战五:六种算法对声呐回波信号进行分类
  • [yolov11改进系列]基于yolov11引入轻量级下采样ContextGuided的python源码+训练源码
  • VBA之Word应用第三章第十节:文档Document对象的方法(三)
  • LeetCode--24.两两交换链表中的结点
  • Android USB 通信开发
  • 数组名作为函数参数详解 —— 指针退化及遍历应用示例
  • Oracle中的异常处理与自定义异常
  • Redis 与 MySQL 数据一致性保障方案
  • Ctrl-Crash 助力交通安全:可控生成逼真车祸视频,防患于未然
  • chili3d 笔记17 c++ 编译hlr 带隐藏线工程图
  • Jenkins持续集成CI,持续部署CD,Allure报告集成以及发送电子 邮件
  • STM32标准库-输入捕获
  • PySide6 GUI 学习笔记——常用类及控件使用方法(多行文本控件QTextEdit)
  • Redis高可用架构
  • CCPC chongqing 2025 H
  • PySide6 GUI 学习笔记——常用类及控件使用方法(单行文本控件QLineEdit)
  • Linux进程(中)
  • Java高级 |【实验八】springboot 使用Websocket