uniapp的适配方式

文章目录

  • 前言
    • ✅ 一、核心适配方式对比
    • 📏 二、`rpx` 单位:uni-app 的核心适配机制
    • 🧱 三、默认设计稿适配(750宽)
    • 🔁 四、字体 & 屏幕密度适配
    • 🛠 五、特殊平台适配(底部安全区、刘海屏)
    • 🧪 六、调试建议
    • 🧰 七、总结:uni-app 的屏幕适配优势


前言

uni-app 相比普通 H5 页面,在适配多终端屏幕方面做了大量工作,目标是让同一套代码在 App、小程序、H5 等多平台上视觉一致、布局准确、交互无误。


✅ 一、核心适配方式对比

维度普通 H5 页面uni-app
单位体系px, rem, %, vw/vh统一使用 rpx(响应像素)
设计稿基准通常 750px 或 375px,需手动适配默认设计稿以 750px 宽度为基准
屏幕适配机制开发者手动设置 viewport 和 media query编译时自动转换 rpx → 实际像素(各端自适应)
多端兼容性需针对不同终端编写样式各端运行时会自动渲染为适配单位(如 App、小程序自动转换)
字体缩放问题需要 JS 控制或媒体查询自动处理大字体模式(小程序)和字体缩放(App)兼容性

📏 二、rpx 单位:uni-app 的核心适配机制

  • rpx = responsive pixel(响应式像素)

  • 自动根据屏幕宽度进行缩放:

    • 在 750px 设计稿下,屏幕宽度为 750rpx,自动适配到任意设备
    • 设备宽为 375px(iPhone 6/7/8),则 1rpx = 0.5px
  • 编译时转换为各平台的对应单位:

    • 小程序平台 → 微信原生 rpx
    • H5 → 转换为 vw
    • App → 转换为 px + dpr 缩放

📌 你写一次:width: 375rpx,在所有平台都能保持相同视觉宽度!


🧱 三、默认设计稿适配(750宽)

  • 大多数组件、模板、样式都是以 750px 宽设计稿为基准
  • 若你的设计稿是 375px 宽,也可以通过工具将其转为 750 再开发
  • rpx 只关注相对宽度,不必手动设置媒体查询或 DPR 缩放

🔁 四、字体 & 屏幕密度适配

  • 小程序字体缩放兼容:rpx 会自动缩放,不需要额外处理
  • App 字体缩放兼容:uni-app 已处理系统字体缩放问题
  • 不建议使用 px 单位定义字体,否则在高 DPI 设备上易出现大小不一

🛠 五、特殊平台适配(底部安全区、刘海屏)

uni-app 提供了多平台兼容性处理:

问题解决方式
iPhone X 底部安全区使用 safe-area-inset-bottom,或 H5 中使用 padding-bottom: constant(safe-area-inset-bottom)
状态栏高度通过 uni.getSystemInfoSync() 获取 statusBarHeight
刘海屏/圆角屏App 和小程序平台会自动适配 padding 区域,建议使用 view 包裹避免遮挡

🧪 六、调试建议

  • 推荐设计稿基准宽度:750px
  • 使用 HBuilderX微信开发者工具 来真实还原 rpx 效果
  • 避免写死 px 布局(否则会在高分屏上过小)

🧰 七、总结:uni-app 的屏幕适配优势

优势描述
✅ rpx 统一单位一套代码兼容所有屏幕密度和平台
✅ 编译阶段处理无需手动编写媒体查询或动态 JS 控制
✅ 多端兼容性强H5、小程序、App 统一视觉表现
✅ 安全区处理完善App/iOS/小程序常见异形屏已内建支持

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/906066.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA EE(进阶)_进阶的开端

别放弃浸透泪水的昨天,晨光已为明天掀开新篇 ——陳長生. ❀主页:陳長生.-CSDN博客❀ 📕上一篇:JAVA EE_HTTP-CSDN博客 1.什么是Java EE Java EE(Java Pla…

SQL脚本规范

主要作用:数据库的备份和迁移 SQL脚本规范 每一个sql语句必须与;结束 脚本结构: { 删库,建库 删表,建表 插入初始数据 } 建库语法: CREATE DATABASE 数据库名CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CHARA…

std::ratio<1,1000> 是什么意思?

author: hjjdebug date: 2025年 05月 14日 星期三 09:45:24 CST description: std::ratio<1,1000> 是什么意思&#xff1f; 文章目录 1. 它是一种数值吗&#xff1f;2. 它是一种类型吗&#xff1f;3. std:ratio 是什么呢&#xff1f;4. 分析一个展开后的模板函数5.小结: …

测试--测试分类 (白盒 黑盒 单元 集成)

一、按照测试目标分类&#xff08;测试目的是什么&#xff09; 主类别细分说明1. 界面测试UI内容完整性、一致性、准确性、友好性&#xff0c;布局排版合理性&#xff0c;控件可用性等2. 功能测试检查软件功能是否符合需求说明书&#xff0c;常用黑盒方法&#xff1a;边界值、…

整理了 2009 - 2025 年的【199 管综真题 + 解析】PDF,全套共 34 份文件

每年真题原卷 ✅ 每年详细解析 ✅ &#x1f4c2;【管综真题 2009-2025】 &#x1f4c2;【管综解析 2009-2025】 目录树&#xff1a; ├── 2009-2025管综真题 PDF │ ├── 2009年199管综真题.pdf │ ├── 2010年199管综真题.pdf │ ├── 2011年199管综真题.pd…

用golang实现二叉搜索树(BST)

目录 一、概念、性质二、二叉搜索树的实现1. 结构2. 查找3. 插入4. 删除5. 中序遍历 中序前驱/后继结点 一、概念、性质 二叉搜索树&#xff08;Binary Search Tree&#xff09;&#xff0c;简写BST&#xff0c;又称为二叉查找树 它满足&#xff1a; 空树是一颗二叉搜索树对…

自动化:批量文件重命名

自动化&#xff1a;批量文件重命名 1、前言 2、效果图 3、源码 一、前言 今天来分享一款好玩的自动化脚&#xff1a;批量文件重命名 有时候呢&#xff0c;你的文件被下载下来文件名都是乱七八糟毫无规律&#xff0c;但是当时你下载的时候没办法重名或者你又不想另存为重新重…

VueUse/Core:提升Vue开发效率的实用工具库

文章目录 引言什么是VueUse/Core&#xff1f;为什么选择VueUse/Core&#xff1f;核心功能详解1. 状态管理2. 元素操作3. 实用工具函数4. 浏览器API封装5. 传感器相关 实战示例&#xff1a;构建一个拖拽上传组件性能优化技巧与原生实现对比常见问题解答总结 引言 在现代前端开发…

stm32 ADC单通道转换

stm32c8t6仅有12位分辨率 1、单次转换 非扫描 1、初始化 void Ad_Init() {RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);//配置ADCCLK时钟分频,ADC的输入时钟不得超过14MHzRCC_ADCCLKConfig(RCC_PCLK2_Div6);G…

2KW压缩机驱动参考设计【SCH篇】

实物展示&#xff1a; ACDC: VAC和VAC-为交流电压检测&#xff1a; 1.C33 C34作为Y电容走线宽度要求&#xff1a; Y电容一般用于L/N到地之间&#xff08;L-PE 或 N-PE&#xff09;&#xff0c;主要作用是抑制共模干扰。其走线的电流非常小&#xff0c;推荐使用 ≥ 1mm 宽的走…

python05——循环结构

1、while循环 n0 #初始条件 while n<5: #判断print(hello python) #要重复执行的代码print(n) #注意同级代码缩进相同n1 #计数器结果&#xff1a; hello python 0 hello python 1 hello python 2 hello python 3 hello python 4 hello python 5 #求阶乘和 sum0 n1 whil…

LINUX编译、运行、测试lowcoder_CN

参考 二者没有太大差异。 LINUX编译、运行、测试lowcoder-CSDN博客 下载 git clone https://github.com/mousheng/lowcoder_CN 或 git clone https://gitcode.com/gh_mirrors/lo/lowcoder_CNcd lowcoder_CN三个模块 node-service api-service client 每个模块都有自己的…

Python 基础之函数命名

几个问题 使用描述性蛇形命名法&#xff08;snake_case&#xff09;Python函数名应使用什么大小写格式&#xff1f;为什么函数名要具有描述性&#xff1f;方法的命名规范是什么&#xff1f;函数、变量和类的命名有何区别&#xff1f; Python函数的命名有一些不可违背的硬性规…

redis 命令大全整理

http://doc.redisfans.com/ 原网址 Redis 命令分类 Key(键) Key(键)命令 exists/del/keys/type/scanobject/move/dump/migratettl/pttl/persist/expireat/pexpireat/expire/pexpirerename/renamenxsort/randomkey/restoreexists 语法:exists key [key ...] 检查一个或多…

React中useDeferredValue与useTransition终极对比。

文章目录 前言一、核心差异对比二、代码示例对比1. useDeferredValue&#xff1a;延迟搜索结果更新2. useTransition&#xff1a;延迟路由切换 三、应用场景总结四、注意事项五、原理剖析1. 核心机制对比2. 关键差异3. 代码实现原理 总结 前言 在React的并发模式下&#xff0c…

高并发内存池|定长内存池的设计

二、定长内存池的设计 设计一个定长的内存池&#xff0c;这个内存池的定长在于&#xff0c;当剩余空间使用完毕后&#xff0c;总是开辟相同长度的新空间来使用。我们会使用到一个指针来切割划分大空间为小空间。大空间是内存池向系统申请的内存大小&#xff0c;而小空间是程序…

微信小程序 自定义图片分享-绘制数据图片以及信息文字

一 、需求 从数据库中读取头像&#xff0c;姓名电话等信息&#xff0c;当分享给女朋友时&#xff0c;每个信息不一样 二、实现方案 1、先将数据库中需要的头像姓名信息读取出来加载到data 数据项中 data:{firstName:, // 姓名img:, // 头像shareImage:,// 存储临时图片 } 2…

从零开始理解Jetty:轻量级Java服务器的入门指南

目录 一、Jetty是什么&#xff1f;先看一个生活比喻 二、5分钟快速入门&#xff1a;搭建你的第一个Jetty服务 步骤1&#xff1a;Maven依赖配置 步骤2&#xff1a;编写简易Servlet&#xff08;厨房厨师&#xff09; 步骤3&#xff1a;组装服务器&#xff08;餐厅开业准备&am…

深入浅出IIC协议 - 从总线原理到FPGA实战开发 -- 第一篇:I2C总线协议深度解剖

第一篇&#xff1a;I2C总线协议深度解剖 副标题 : 两根线如何征服千亿设备&#xff1f;详解硬件工程师必须掌握的通信奥义 1. 为什么I2C仍是嵌入式经典&#xff1f; 1.1 总线拓扑的哲学 拓扑对比图 SPI需4线N片选 vs I2C仅2线级联 UART点对点 vs I2C多主从架构 成本控制实…

MySQL 索引优化以及慢查询优化

在数据库性能优化中&#xff0c;索引优化和慢查询优化是两个关键环节。合理使用索引可以显著提高查询效率&#xff0c;而识别和优化慢查询则能提升整体数据库性能。本文将详细介绍MySQL索引优化和慢查询优化的方法和最佳实践。 一、MySQL 索引优化 1.1 索引的基本概念 索引是…