constant(safe-area-inset-bottom)和env(safe-area-inset-bottom)在uniapp中的使用方法解析

在微信小程序中,padding-bottom: constant(safe-area-inset-bottom);padding-bottom: env(safe-area-inset-bottom); 这两个 CSS 属性用于处理 iPhone X 及更高版本设备的安全区域(safe area)。这些设备的底部有一个“Home Indicator”,为了避免内容被这个指示器遮挡,可以使用这些属性来动态调整底部的内边距。

详细说明

  1. constant(safe-area-inset-bottom):

    • 这是旧的语法,用于 iOS 11.2 及更早版本。
    • 在 iOS 11.2 及更高版本中,推荐使用 env(safe-area-inset-bottom)
  2. env(safe-area-inset-bottom):

    • 这是新的语法,推荐使用。
    • 适用于 iOS 11.2 及更高版本。

使用示例

为了确保兼容性,通常会同时使用这两个属性。以下是一个示例,展示了如何在微信小程序中使用这些属性来处理安全区域。

示例代码
/* app.wxss */
.container {display: flex;flex-direction: column;height: 100vh;padding-bottom: constant(safe-area-inset-bottom); /* 旧的语法 */padding-bottom: env(safe-area-inset-bottom); /* 新的语法 */
}.content {flex: 1;background-color: #f0f0f0;
}.footer {background-color: #fff;padding: 10px;text-align: center;border-top: 1px solid #ccc;
}
解释
  1. .container:

    • 使用 padding-bottom: constant(safe-area-inset-bottom);padding-bottom: env(safe-area-inset-bottom); 来确保内容不会被底部的 Home Indicator 遮挡。
    • height: 100vh; 使容器占满整个视口高度。
  2. .content:

    • 使用 flex: 1; 使内容区域占据剩余的空间。
  3. .footer:

    • 这是一个示例底部栏,确保底部栏不会被 Home Indicator 遮挡。

完整示例

以下是一个完整的示例,展示了如何在微信小程序中使用这些属性。

app.json
{"pages": ["pages/index/index"],"window": {"navigationBarTitleText": "Safe Area Example"}
}
app.wxss
/* app.wxss */
.container {display: flex;flex-direction: column;height: 100vh;padding-bottom: constant(safe-area-inset-bottom); /* 旧的语法 */padding-bottom: env(safe-area-inset-bottom); /* 新的语法 */
}.content {flex: 1;background-color: #f0f0f0;display: flex;justify-content: center;align-items: center;
}.footer {background-color: #fff;padding: 10px;text-align: center;border-top: 1px solid #ccc;
}
pages/index/index.js
// pages/index/index.js
Page({data: {message: 'Hello, Safe Area!'}
})
pages/index/index.json
{}
pages/index/index.wxml
<!-- pages/index/index.wxml -->
<view class="container"><view class="content"><text>{{message}}</text></view><view class="footer"><text>Footer Content</text></view>
</view>
pages/index/index.wxss
/* pages/index/index.wxss */
/* 这里可以添加特定于该页面的样式 */

总结

通过在 CSS 中使用 padding-bottom: constant(safe-area-inset-bottom);padding-bottom: env(safe-area-inset-bottom);,可以确保微信小程序的内容不会被 iPhone X 及更高版本设备的底部 Home Indicator 遮挡。这样可以提升用户体验,确保内容在不同设备上的显示效果一致。

如有开发的需求联系我

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

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

相关文章

十二、Cluster集群

目录 一、集群简介1、现状问题2、集群作用 二、集群结构设计1、集群存储设2、消息通信设计 三、Cluster集群三主三从结构搭建1、redis.conf配置文件可配置项2、配置集群3、链接集群4、命令客户端连接集群并使用 四、集群扩容1、添加节点2、槽位分配3、添加从节点 五、集群缩容1…

Java基础 3.29

1.数组的相关注意事项 错误示范一 String strs[] new String[2]{"a", "b"}; 正确示范一 String strs[] new String[]{"a", "b"}; 让JVM自己判断有几个数据&#xff0c;无需再其中写明有几组数据 错误示范二 String strs[] new…

从入门到精通:HTML 项目实战中的学习进度(一)

一、基础夯实阶段 1.1 HTML 文档结构与核心语法 在 HTML5 的世界里&#xff0c;构建一个文档就像是搭建一座大厦&#xff0c;坚实的基础至关重要。HTML5 文档的基础框架以<!DOCTYPE html>声明开场&#xff0c;这就好比是给浏览器下达的一份 “指令书”&#xff0c;明确…

FFmpeg —— 实时绘制音频波形图(附源码)

🔔 FFmpeg 相关音视频技术、疑难杂症文章合集(掌握后可自封大侠 ⓿_⓿)(记得收藏,持续更新中…) 实时绘制音频波形图 步骤                 FFmpeg打开媒体文件,读取每一包数据,将音频数据包进行缓冲,一包一包处理音频缓冲,对音频缓冲包进行解码,读…

大数据学习(88)-zookeeper实现的高可用(HA)

&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一…

基于MFC按钮逻辑

void CSUCCES1Dlg::SetDlgItemState()//IDC_BTN_INIT初始化按钮 { GigeState state = GigeState::ARV_NONE;//GigeState是一个枚举类型,stat状态为ARV_NONE int idx = ((CListBox*)GetDlgItem(IDC_LIST_GIGE))->GetCurSel();//GetDlgItem 是 MFC 框架提供的一个成员…

EF Core 乐观并发控制(并发令牌)

文章目录 前言一、乐观并发的核心思想二、实现方法1&#xff09;使用并发令牌&#xff08;Concurrency Token&#xff09;2&#xff09;处理并发冲突 三、工作原理四、适用场景五、与悲观并发的对比六、最佳实践总结 前言 Entity Framework (EF) Core 默认支持 乐观并发控制&a…

解决 FFmpeg 使用 C/C++ 接口时,解码没有 shell 快的问题(使用多线程)

一、问题 硬件设备为香橙派 5Plus&#xff0c;最近需要使用硬件视频解码来加速 YOLO 的检测&#xff0c;shell 窗口的FFmpeg已经调通&#xff0c;详见文章&#xff1a; 编译支持 RKmpp 和 RGA 的 ffmpeg 源码_rk3588 ffmpeg mpp-CSDN博客https://blog.csdn.net/plmm__/article…

工业控制网络中常用的通信协议

1. 现场总线协议 Modbus 概述&#xff1a;Modbus 是最广泛使用的工业协议之一&#xff0c;主要用于串行通信&#xff0c;支持主/从架构&#xff0c;通过 RS-232 或 RS-485 传输&#xff0c;也有基于以太网的 Modbus TCP 版本。特点&#xff1a;简单易用&#xff0c;易于实现&am…

【Mac】npm error Error: EACCES: permission denied, mkdir‘/Users/...

问题描述&#xff1a;Mac电脑中的 vscode 下载依赖的时候提示没有权限&#xff1a; 故障分析 首先账号是有权限的&#xff0c;电脑就建了一个账号是管理员&#xff1b;在桌面用shell直接执行命令npm init 命令可以执行成功&#xff0c;那么问题就出在vscodes上面了&#xff0…

Ruby 简介

Ruby 简介 引言 Ruby 是一种广泛使用的动态、开源的编程语言,自 1995 年由日本程序员 Yukihiro Matsumoto(通称 Matz)设计以来,它以其优雅的语法、强大的库支持和跨平台特性赢得了全球开发者的青睐。本文将详细介绍 Ruby 的起源、特点、应用领域以及它在现代软件开发中的…

[Qt5] QMetaObject::invokeMethod使用

&#x1f4e2;博客主页&#xff1a;https://loewen.blog.csdn.net&#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;本文由 丶布布原创&#xff0c;首发于 CSDN&#xff0c;转载注明出处&#x1f649;&#x1f4e2;现…

Windows10清理机器大全集

Windows10清理机器大全集 写在前面先这么个标题&#xff0c;逐渐补充禁止Update移除Microsoft Compatibility Telemetrywindows-defender-remover其它 写在前面 看到标题&#xff0c;读者已经就吐了。 我是说&#xff0c;我非常认可: IT从业者&#xff0c;如果你银子比较充足&…

【AI】NLP

不定期更新&#xff0c;建议关注收藏点赞。 目录 transformer大语言模型Google Gemma疫情网民情绪识别 整体框架 baseline构建 模型调参、模型优化、其他模型 数据trick、指标优化、magic feature 数据增强、伪标签、迁移学习 模型融合sklearn中TFIDF参数详解 频率阈值可以去掉…

如何为 Debian 和 Kali 系统更换软件源并更新系统

在 Linux 系统中&#xff0c;软件源&#xff08;Software Repository&#xff09;是获取软件包和更新的核心途径。然而&#xff0c;默认的软件源可能会因为地理位置、网络状况等原因导致下载速度缓慢&#xff0c;甚至无法访问。为了提升系统的软件获取效率&#xff0c;许多用户…

android 一步完成 aab 安装到手机

家人们谁懂&#xff01;在 Android 系统安装 aab 应用超麻烦。满心期待快速体验&#xff0c;却发现 aab 无法直装&#xff0c;得先转为 apks 格式&#xff0c;这过程复杂易错。好不容易转好&#xff0c;还得安装 apks&#xff0c;一番折腾&#xff0c;时间与耐心全耗尽。别愁&a…

mac部署CAT监控服务

在 Mac 上部署美团点评开源的 CAT 监控服务端&#xff0c;可以按照以下步骤操作&#xff1a; 1. 环境准备 1.1 安装依赖 确保已安装以下工具&#xff1a; JDK 8&#xff08;建议 OpenJDK 11&#xff09; MySQL 5.7&#xff08;存储监控数据&#xff09;&#xff08;8.0不支持…

C语言基础:第10天笔记

内容提要 函数 函数的概述 函数的分类 函数的定义 形参和实参 函数的返回值 函数 函数的概述 函数&#xff1a;实现一定功能的&#xff0c;独立的代码模块&#xff0c;函数是c程序的核心构成模块&#xff0c;可以说c程序就是由众多的函数组成&#xff0c;对于函数的使用…

集成开发环境革新:IntelliJ IDEA与Cursor AI的智能演进

集成开发环境革新&#xff1a;IntelliJ IDEA 与 Cursor AI 的智能演进 集成开发环境&#xff08;IDE&#xff09; 是软件开发者必不可少的工具。一个优秀的 IDE 不仅能够帮助编写和调试代码&#xff0c;还能集成版本控制和代码优化等多种功能。如今&#xff0c;随着人工智能&a…

【Django】教程-1-安装+创建项目+目录结构介绍

欢迎关注我&#xff01;后续会更新django教程。一周2-3更&#xff0c;欢迎跟进&#xff0c;本周会更新第一个Demo的单独一个模块的增删改查【Django】教程-4-一个增删改查的Demo【Django】教程-2-前端-目录结构介绍【Django】教程-3-数据库相关介绍 1.项目创建 1.1 安装 Djan…