层叠顺序布局
两个元素在屏幕上重叠时,决定谁画在上面、谁被盖在下面的先后次序。
- 被别的东西盖住了
- 让它显示在最上面
- 浮层跑到下面去了
- 层叠顺序
- 堆叠次序
- 绘制顺序
示例
13这块
z-index: 2;
Web / iOS / Android 对照
Web原生支持
平台通用范围
z-index
CSS: z-index
官方定义是「设置一个已定位元素及其后代、或弹性与网格项的 z 轴次序」。前置条件写在定义里:元素必须是已定位的(position 不为 static),或者是弹性/网格项,否则这个属性不生效。另两端没有这类前置条件。
iOS原生支持
平台通用范围
zIndex
也叫 zIndex(_:)
SwiftUI: View.zIndex(_:)
官方描述是「控制重叠视图的显示顺序」,参数说明是「这个视图相对的前后次序,默认为 0」。没有「必须先定位」这类前置条件,任何视图都能直接用。
Android原生支持
平台通用范围
zIndex
也叫 Modifier.zIndex
Compose: Modifier.zIndex(zIndex)
官方描述是「创建一个修饰符,控制同一个布局父级下子元素的绘制顺序」。作用域被写进了定义:它只在兄弟之间排序,跨父级不比较 —— 这与 Web 的层叠上下文规则和 iOS 的无前置条件都不一样。
使用规范
什么时候用
- 浮层、气泡、吸顶栏需要压在正常内容之上时
- 两个重叠元素的先后关系不能靠书写顺序保证时
什么时候别用
- 靠不断加大数值来压过别人时 —— 那说明层级关系本身没理清
- 元素并不重叠,只是排布先后 → 那是布局顺序,不是层叠顺序
容易混淆
给 AI 的提示词
这条词条还没有经过验证的实现提示词。