tailwind 的 zindex 配置必须写在 theme.zindex 对象中,使用带引号的键值对(如 'tooltip': '50'),数组写法已废弃;修改后需重启开发服务器,否则类不生效。

Tailwind 的 zIndex 配置不是“设置 CSS 层级”的万能开关,而是决定哪些 z- 类会被生成——配错位置、格式或没重启,类就根本不存在。
必须写在 theme.zIndex 对象里,不能放 extend
Tailwind v3.0+ 完全不读 extend.zIndex 里的定义。哪怕你写了 extend: { zIndex: { 'tooltip': '50' } },只要 theme.zIndex 是空的或没声明,z-tooltip 就不会出现在最终 CSS 中。
- ✅ 正确位置:
theme: { zIndex: { 'tooltip': '50', 'modal': '60', 'max': '2147483647' } } - ❌ 错误位置:
extend: { zIndex: { ... } }(等于白写) - ⚠️ 键名必须加引号:
'50',不是50(JS 会转成数字键,导致生成失败)
数组写法已废弃,对象映射是唯一有效方式
v3 开始彻底弃用 zIndex: ['0', '10', '50'] 这种数组写法。它不会报错,但也不会生成任何类——构建后检查输出 CSS,你会发现 .z-10 等类根本不存在。
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
- 旧项目升级后失效,大概率是这里卡住
- 如果需要精细值(比如
z-7或z--1),只能靠对象显式声明:'-1': '-1'、'7': '7' -
z--1是合法类名,但需确认构建工具未过滤双短横(如某些 PostCSS 插件)
改完配置必须重启开发服务器
Tailwind 不热重载 tailwind.config.js 变更。哪怕只加了一个 'dropdown-backdrop': '49',不手动 stop + start dev server,这个类就永远不会生效。
- 常见现象:改完配置,页面刷新后仍找不到
z-dropdown-backdrop类 - Vite / Next.js / Remix 等框架都一样,没有例外
- 顺手检查浏览器开发者工具的 Elements → Computed →
z-index,确认是否真被应用
别依赖 z-[999],它不解决根本问题
z-[999] 依赖 JIT 扫描 content 中的字符串。如果值来自 JS 变量(如 z-[${depth}])、动态拼接或未被扫描路径覆盖,生产环境极大概率漏生成。
- 语义化命名才是可维护解法:
z-tooltip、z-modal-backdrop - 第三方组件(如 Headless UI)要求
z-50,不代表你必须硬套——它只是保守值,实际可能z-45就够 - 真正卡住人的,从来不是数字大小,而是父容器有没有创建新层叠上下文(比如
opacity-99或transform)
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










