React+Tailwind CSS布局div层叠导致导航栏部分元素无法点击怎么解决
问题原因定位
- 核心为层叠上下文优先级冲突:你的导航栏使用
fixed定位但未显式设置z-index,默认层级为auto;右侧3/12宽度的区块带有data-aos动画属性,AOS库初始化时会自动为该元素创建独立层叠上下文,同时设置position: relative和高于默认值的z-index,导致该区块实际悬浮在导航栏上方,遮挡了重叠区域的Experience、Project、Contact三个导航链接的点击事件。 - 左侧9/12区域没有给外层容器配置AOS动画属性,外层容器默认层级低于导航栏,因此重叠的About链接可以正常点击。
可行解决方案
方案1:给导航栏设置高优先级z-index(最推荐)
直接给导航标签添加Tailwind内置的高层级类z-50,强制导航栏悬浮在所有普通内容上方,不需要调整其他布局逻辑,适配性最高:
<nav className="bg-gray-900 fixed w-full z-50"> {/* 原有导航内部代码不变 */} </nav>
方案2:调整主体内容边距避免重叠
如果不需要导航与主体内容重叠的视觉效果,可以给两栏布局的外层容器添加和导航高度匹配的顶部内边距pt-24(导航栏高度为h-24),彻底消除重叠区域:
<div className="flex px-48 flex-wrap pt-24"> {/* 原有两栏内容代码不变 */} </div>
方案3:降低右侧动画区块的层级
如果要保留现有重叠视觉效果,也可以给右侧带AOS动画的区块添加z-0类,强制其层级低于导航栏:
<div className="w-3/12 pt-48 z-0" data-aos="fade-left" data-aos-delay="800" data-aos-duration="1000" data-aos-anchor-placement="top-center" > {/* 原有右侧内容代码不变 */} </div>
内容的提问来源于stack exchange,提问作者Raman
相关产品推荐
相关产品推荐

