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

uniapp 之 获取底部安全距离,状态栏高度等

特定样式注意点

    • 固定底部按钮
    • 自定义顶部导航栏
    • 其他

工作中我们常常需要设置一些特定样式:

  • 固定底部按钮
  • 自定义顶部导航栏
  • ……

固定底部按钮

这里需要注意的是,真机运行时底部时IOS是存在安全距离的,这个时候就需要我们处理一下

.u-fixed-b {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 24rpx;
  padding-bottom: calc(24rpx + constant(safe-area-inset-bottom));
  padding-bottom: calc(24rpx + env(safe-area-inset-bottom));
  z-index: 50;
}
  • 获取上安全距离: env(safe-area-inset-top)
  • 获取左安全距离:env(safe-area-inset-left)
  • 获取右安全距离:env(safe-area-inset-right)
  • 获取下安全距离:env(safe-area-inset-bottom)

可以在固定底部的盒子加下内下边距 padding-bottom: env(safe-area-inset-bottom) 避免元素被遮挡


自定义顶部导航栏

自定义导航栏需要注意的是:顶部存在状态栏,也就是显示信号、时间等信息的状态栏;

<template>
	<view class="container">
		<!-- 自定义顶部导航 -->
		<uni-nav-bar left-icon="left" backgroundColor="#FFFFFF" title="顶部导航" @clickLeft="backPage"></uni-nav-bar>
		
		<!-- 页面内容 -->
		<view class="page-content">
			<!-- ---------- -->
		</view>
	</view>
</template>
.container {
	background-color: #ffffff;
	height: 100%;
	padding-top: var(--status-bar-height);
	display: flex;
	flex-direction: column;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
}

获取状态栏高度:var(–status-bar-height)

  • 可以在页面的最外层的盒子加内上边距 padding-top: var(–status-bar-height)避免顶部导航栏与状态栏重叠;
  • 并且需要给最外层盒子设置背景色与页面背景色一致,不然会出现状态栏的背景色和页面背景色不一致的情况;


其他

另外uniapp 还有一些其他的css 变量(详情查看官方文档):

  • 内容区域距离顶部的距离:var(–window-top);
  • 内容区域距离底部的距离:var(–window-bottom);

在这里插入图片描述


如有不足,望大家多多指点! 谢谢!

相关文章:

  • 【Python数据分析 - 6】:Numpy中的逻辑运算
  • SpringBoot自定义banner
  • Hi3861 业务代码编写框架
  • Python基于OpenCV监控老鼠蟑螂检测系统[完整源码&部署教程]
  • BIO、NIO、IO多路复用(select/poll/epoll)、信号驱动IO、异步IO
  • Echarts y轴相关配置
  • 02.6 概率
  • 【web-渗透测试方法】(15.2)分析应用程序、测试客户端控件
  • 03.1线性回归
  • 【智能优化算法】基于觅食生境选择的改进粒子群算法(FHSPSO)附 Matlab代码
  • 密码相关----对称加密,非对称加密
  • 02.1、数据操作
  • 离散数学 --- 命题逻辑 -- 命题符号化与命题公式
  • 回坑记之或许是退役赛季?
  • 初识OpenGL (-)EBO元素缓冲对象(Element Buffer Object)
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • angular组件开发
  • ES10 特性的完整指南
  • magento 货币换算
  • Redis字符串类型内部编码剖析
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • 创建一种深思熟虑的文化
  • 分布式熔断降级平台aegis
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 首页查询功能的一次实现过程
  • 王永庆:技术创新改变教育未来
  • 微信公众号开发小记——5.python微信红包
  • 我有几个粽子,和一个故事
  • 一个SAP顾问在美国的这些年
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • $.each()与$(selector).each()
  • (02)Hive SQL编译成MapReduce任务的过程
  • (06)Hive——正则表达式
  • (4.10~4.16)
  • (52)只出现一次的数字III
  • (Java)【深基9.例1】选举学生会
  • (Matlab)使用竞争神经网络实现数据聚类
  • (ZT)薛涌:谈贫说富
  • (二)c52学习之旅-简单了解单片机
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (十六)Flask之蓝图
  • (五)MySQL的备份及恢复
  • .java 9 找不到符号_java找不到符号
  • .Net Core 中间件验签
  • .NET 设计模式初探
  • .net 微服务 服务保护 自动重试 Polly
  • .NET 指南:抽象化实现的基类
  • .net中的Queue和Stack
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • [17]JAVAEE-HTTP协议
  • [AIR] NativeExtension在IOS下的开发实例 --- IOS项目的创建 (一)
  • [BT]BUUCTF刷题第8天(3.26)
  • [BZOJ] 2006: [NOI2010]超级钢琴