Skip to content

组件 z index

leejimqiu edited this page Jul 6, 2022 · 7 revisions
组件 建议 zIndex 范围 组件默认 zIndex
Affix 500 ~ 600 500
Drawer 1500 ~ 1600 1500
Dialog 对话框 2500 ~ 2600 2500
Loading 组件 3500 ~ 3600 3500
Message 消息 5000 ~ 5100 5000
Popup 弹框气泡 5500 ~ 5600 5500
Notification 消息通知 6000 ~ 6100 6000
  1. PC 端没有 Toast 组件,规划范围应该分开;
  2. Popup 组件 z-index 最高不太合理,PC 端 Dialog < Popup < Loading < Message 是否好一些?

第 1 点,已分开。

第 2 点,前提:Dropdown 组件基于 Popup 实现

比如,Dropdown 组件的某一项操作是点击后 弹框 Dialog。此时,期望 Dialog 层级 比 Popup 高。

但是另外一个场景:在 Dialog 弹框里面有个表单 Select 组件(基于 Popup 实现),此时又需要 Dialog 层级比 Popup 低

默认值没有绝对正解,业务侧可以根据 zIndex 自行设计层级关系

Popup/Drawer/Dialog 等组件可以尝试通过使用相同 zIndex 处理三者关系,先发生先显示,后发生后显示。相同层级使用 1500

vue-mobile 组件的层级关系

组件 建议 zIndex 范围 组件默认 zIndex
Drawer 抽屉 (底层基于Popup) 1500 ~ 1600 1500
Dialog 对话框(底层基于Popup) 1500 ~ 1600 1500
Toast 组件 2000 ~ 2500 2000
Message 消息 5000 ~ 5100 5000
Popup 弹出层 1500 ~ 1600 1500
Overlay 遮罩层 1000 ~ 1500 1000

Drawer、Dialog组件底层是基于Popup实现的,移动端这里Popup < Dialog = Drawer < Toast < Message。不过感觉Dialog < Drawer应该更合理点?

小程序

本来小程序应该和 mobile 一样的,但由于小程序原生组件 Tabbar 的权重 = 9999

因此所有组件的权重都在 mobile 的基础上 + 10000

组件 建议 zIndex 范围 组件默认 zIndex
Drawer 抽屉 (底层基于Popup) 11500 ~ 11600 11500
Dialog 对话框(底层基于Popup) 11500 ~ 11600 11500
Toast 组件 12000 ~ 12500 12000
Message 消息 15000 ~ 15100 15000
Popup 弹出层 11500 ~ 11600 11500
DropdownMenu 下拉菜单 11500 ~ 11600 11600
Overlay 遮罩层 11000 ~ 11500 11000