You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

移动端汉堡菜单被个人介绍区块遮挡的z-index问题求助

解决移动端汉堡菜单被个人介绍区块遮挡的问题

兄弟,我瞅了你的代码,问题根本不是单纯调z-index就能搞定的,核心是堆叠上下文的创建规则在搞怪!咱们一步步拆解:

问题根源

你的.myname用了position: absolute,这会让它自动创建一个堆叠上下文;但你的导航栏.navigatie是默认的position: static,这种情况下,哪怕你给.meniu-navbar加再大的z-index都没用——因为父元素不在堆叠上下文里,子元素的层级根本没法和.myname的层级对比。

具体修复步骤

我给你改了关键的CSS代码,直接用就行:

修改后的核心CSS

/* 给导航栏添加定位,创建自己的堆叠上下文 */
.navigatie{
  display: flex;
  flex-direction: row;
  width: 100%;
  position: relative; /* 这行是关键! */
  z-index: 1;
}

/* 给菜单设置足够高的z-index,确保在个人介绍之上 */
.meniu-navbar{
  display: flex;
  justify-content: space-around;
  flex-direction: row;
  padding-top: 5px;
  z-index: 999;
}

/* 新增移动端适配逻辑——你之前的汉堡按钮是隐藏的! */
@media (max-width: 768px) {
  label{
    display: block !important; /* 显示汉堡按钮 */
    cursor: pointer;
  }
  .meniu-navbar{
    position: absolute;
    top: 70px; /* 贴在导航栏下方 */
    right: 0;
    width: 100%;
    flex-direction: column;
    background-color: #fff; /* 加背景避免和下面内容重叠 */
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
    display: none; /* 默认隐藏菜单 */
  }
  /* 点击复选框后显示菜单 */
  #toggle:checked + .meniu-navbar{
    display: flex;
  }
  /* 移动端调整logo边距,避免太靠边 */
  .logo{
    margin-left: 20px;
  }
}

/* 可选:明确个人介绍的层级低于菜单 */
.myname{
  position: absolute;
  top: 180px;
  left: 70px;
  z-index: 0;
}

为啥这么改?

  1. position: relative给导航栏:只有非static的定位元素才能创建堆叠上下文,这样子元素.meniu-navbar的z-index才会生效,能和.myname的层级对比。
  2. 修复移动端菜单显示逻辑:你之前的label是display: none !important,移动端根本看不到汉堡按钮,我在媒体查询里把它显示出来,还加了菜单的显示/隐藏逻辑。
  3. 菜单加背景色:避免菜单和下面的个人介绍文字重叠,让用户能看清菜单选项。

要是还不行,你检查下页面里有没有其他元素设置了更高的z-index,比如弹窗、固定导航之类的,确保菜单的z-index是最高的就行。

内容的提问来源于stack exchange,提问作者Tudor Alexandru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 09:48:13