网站首页 > 技术文章 正文
我们开发的项目一般都会有可视化界面,如下图:
我们需要考虑在各个设备上能够正常显示,我们就看看 uni-app 创建的项目,他的响应式是如何处理的?
一、uni-app 是如何实现响应式的?
uni-app 的尺寸单位:
- px:屏幕像素单位。
- rpx:根据屏幕宽度自适应的动态单位,以 750 宽的屏幕为基准,750rpx 恰好是屏幕宽度,rpx 实际显示效果会等比放大,但在APP端和H5端屏幕宽度达到 960px 时,默认按照 375px 的屏幕宽度进行计算。
响应原理很简单:就是给 html 根节点设置字体大小,写样式的时候单位使用 rpx ,利用 hBuiler X 自带插件,将 rpx 单位自动转为 rem。从而实现不同屏幕大小的适配。
当我们屏幕缩放到大于 960px 时,界面就没有明显的缩放,发现根节点的字体大小统一设置为 16px ,从而就会出现一个问题:
我们制作的东西在手机端是一套适配,大于 960px 之后又是一套适配,如果是制作 PC 和 手机端,我们就以 960px 作为一个结点,如果是只做手机端,就会出现在 ipad 上排版乱了,我们如何灵活设置 960px 的大小呢?
二、uniapp 根节点字体大小如何设置?
uni-app 项目中可以在 page.json 配置文件内,通过设置 globalStyle 进行配置:
属性 | 类型 | 默认值 | 描述 | 平台差异说明 |
rpxCalcMaxDeviceWidth | Number | 960 | rpx 计算所支持的最大设备宽度,单位 px | App(vue2 且不含 nvue)、H5(2.8.12+) |
rpxCalcBaseDeviceWidth | Number | 375 | rpx 计算使用的基准设备宽度,设备实际宽度超出 rpx 计算所支持的最大设备宽度时将按基准宽度计算,单位 px | App(vue2 且不含 nvue)、H5(2.8.12+) |
rpxCalcIncludeWidth | Number | 750 | rpx 计算特殊处理的值,始终按实际的设备宽度计算,单位 rpx | App(vue2 且不含 nvue)、H5(2.8.12+) |
dynamicRpx | Boolean | false | 动态 rpx,屏幕大小变化会重新渲染 rpx | App-nvue 3.2.13+ |
配置代码:
{
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "uni-app-vue3+vite+TS"
}
}
],
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app-vue3+vite+TS",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8",
"rpxCalcMaxDeviceWidth": 750,
"rpxCalcBaseDeviceWidth": 375,
"rpxCalcIncludeWidth": 750,
"dynamicRpx": true
}
}
更多配置可参考官网:https://uniapp.dcloud.io/collocation/pages.html#globalstylehttps://uniapp.dcloud.io/collocation/pages.html#globalstyle
三、rpx px rem 之间的关系,以及如何转化的?
网上查找以及看官方文档,提示 HbuilderX 是在“ 工具菜单 -> 设置 -> 编辑器设置 ”,如图:
可以设置 pr 转 rem 比例,以及 px 转 rpx 的比例。
我手动修改参数,并重启 HbuilderX 软件,都未起作用。
始终保持的是 :1rem = 32rpx
有知道在哪设置或者换算原理的吗?欢迎评论区一起探索!
猜你喜欢
- 2024-12-26 最新CRMEB商城多商户java版源码v1.6版本+前端uniapp
- 2024-12-26 React NextJS App Router 实时获取API
- 2024-12-26 一个人生活必须要知道的几款App,告别空虚寂寞冷
- 2024-12-26 看看汽车充电app界面的设计,是不是一场创意盛宴
- 2024-12-26 印度欧美APP商城前端源码下载/多店铺PHP商城源码下载
- 2024-12-26 基于vue.js+uniapp后台管理系统uni-uadmin
- 2024-12-26 基于 vue.js 可视化拖拽低代码VisualDrag
- 2024-12-26 想积累实战经验吗?前端教程_ReactNative项目之美食App不容错过
- 2024-12-26 一、Uni-app + Vue3 + TS +Vite 创建项目步骤
- 2024-12-26 前端:uniapp封装网络请求笔记 uniapp封装方法
你 发表评论:
欢迎- 05-30为什么说网上的md5加密解密站都是通过彩虹表解密的?
- 05-30一文读懂md5,md5有什么用,什么是md5加盐
- 05-30Java md5加密解密数据
- 05-30MD5是什么?如何进行MD5校验?
- 05-30专家教你简单又轻松的MD5解密方法,一看就会
- 05-30多学习才能多赚钱之:vscode怎么安装插件
- 05-30VSCode无限画布模式(可能会惊艳到你的一个小功能)
- 05-30VSCode神级Ai插件Cline:从安装到实战【创建微信小程序扫雷】
- 477℃几个Oracle空值处理函数 oracle处理null值的函数
- 472℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 468℃Oracle分析函数之Lag和Lead()使用
- 456℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 450℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 447℃【数据统计分析】详解Oracle分组函数之CUBE
- 426℃Oracle有哪些常见的函数? oracle中常用的函数
- 424℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)