状态栏高度
使用 css 变量 --status-bar-height
var(–status-bar-height) 此变量在微信小程序环境为固定 25px,在 App 里为手机实际状态栏高度。
在 uniapp 里,使用 css 变量 --status-bar-height
获取状态栏高度。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <template> <page-meta> <navigation-bar /> </page-meta> <view> <view class="status_bar"> </view> <view>状态栏下的文字</view> </view> </template> <style> .status_bar { height: var(--status-bar-height); width: 100%; } </style>
|
nvue 下获取状态栏高度
nvue 不支持 css 变量, 该页面下获取状态栏高度,使用 uni.getSystemInfoSync().statusBarHeight
Android 与 IOS 状态栏高度适配
- iOS 的状态栏高度是固定的,通常为 44px(iPhone 14 及以上机型)或 20px(旧机型)。
- Android 的状态栏高度不固定,通常为 24px 或 48px(取决于设备和系统版本)。
根据不同的平台动态获取状态栏高度:
- 使用
uni.getSystemInfoSync().platform
判断平台
- 使用
uni.getSystemInfoSync()
获取状态栏高度
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| <template> <view :style="{ paddingTop: totalHeight + 'px' }"> </view> </template>
<script> export default { data() { return { totalHeight: 0, }; }, onLoad() { const systemInfo = uni.getSystemInfoSync(); const statusBarHeight = systemInfo.statusBarHeight || 0; const platform = systemInfo.platform;
let extraHeight = 0; if (platform === "ios") { extraHeight = 44; } else if (platform === "android") { extraHeight = 48; }
this.totalHeight = statusBarHeight + extraHeight; }, }; </script>
|