Skip to content

CSS 层级管理 - zIndex

@ifanrx/uni-mp 组件的 CSS z-index 层级管理方案方案参考 uView。其核心思想是为不同类别的组件配置不同的 z-index 数值,从而将组件分类,以确保各组件之间的 z-index 不会产生冲突。

当前的 z-index 数值配置如下:

js
export default {
  // mp-message
  toast: 10090,
  // popup 也包含 mp-dialog
  popup: 10075,
  // mask 遮罩层
  mask: 10070,
  // mp-nav-bar
  navbar: 980,
  // 适用于悬浮的提示和按钮
  floating: 975,
  // 吸顶的 tab、搜索框之类
  sticky: 970,
}

你可以通过引入 zIndex 获取这个配置,以便在项目中使用正确的 z-index 数值:

js
import {zIndex} from '@ifanrx/uni-mp'

你可以根据不同场景选择哪一种方式使用这个 zIndex 对元素进行配置。第一种方式是直接设置行内样式:

vue
<script setup>
import { zIndex } from '@ifanrx/uni-mp'
</script>

<template>
  <div :style="{ zIndex: zIndex.floating }">
</template>

也可以使用 CSS 的 v-bind 函数,以便在 style 标签内使用(适用于需要配合 :deep 的场景):

vue
<script setup>
import { zIndex } from '@ifanrx/uni-mp'
</script>

<template>
  <div class="xxx">
</template>

<style scoped>
.xxx {
  z-index: v-bind('zIndex.floating');
}
</style>