Skip to content

fix: 修复弹出类组件开启 absolute 后在非 Modal 场景下被自动注入 z-index,导致用户 CSS 层级覆盖失效的问题#2221

Merged
saint3347 merged 2 commits into
masterfrom
fix/dropdown-zindex-breaking-change
Jun 29, 2026
Merged

fix: 修复弹出类组件开启 absolute 后在非 Modal 场景下被自动注入 z-index,导致用户 CSS 层级覆盖失效的问题#2221
saint3347 merged 2 commits into
masterfrom
fix/dropdown-zindex-breaking-change

Conversation

@saint3347

Copy link
Copy Markdown
Contributor

问题描述

弹出类组件(Dropdown、Select、DatePicker 等)开启 absolute 属性后,即使不在 Modal 内,也会被自动注入 style="z-index: 1051"。由于 inline style 优先级最高,用户通过 CSS 自定义 z-index 的方式完全失效,且从 v1 升级到 v2 后行为不一致。

Regression: since 2.0.23(commit: 5dd2ee0,PR #1856 Modal Drawer TS 重构时将 Context 默认值从 undefined 改为 {},导致 zIndex 注入逻辑在所有场景下触发)

修复方案

将 Modal Context 默认值由 {}(truthy)改回 null,使 zIndex 自动注入行为仅在真正处于 Modal 内部时生效,与 v1 行为保持一致。

同步修复 Modal/Panel.tsx<ZProvider value> 的 TypeScript 类型错误(boolean 不兼容 object | null)。

变更文件

  • src/Modal/context.tsx — Context 默认值 {}null,条件判断 value &&value != null &&
  • src/Modal/Panel.tsx<ZProvider value><ZProvider value={{}}>
  • site/pages/documentation/changelog/2.x.x.md — 补充 changelog

@saint3347
saint3347 merged commit df84eeb into master Jun 29, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant