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

导航栏悬停时背景模糊效果实现问题求助

实现导航悬停时下方内容模糊效果

要实现导航悬停展开下拉菜单时,下方的hero图片及内容模糊,你之前的问题出在backdrop-filter的应用对象错误,以及sub-menu的背景完全不透明导致无法看到下方内容的模糊效果。以下是修正方案:

核心修改点

  • 将backdrop-filter应用到sub-menu容器上,而非子元素a标签
  • 把sub-menu的background-color改为半透明(比如rgba(0,0,0,0.8)),让下方内容的模糊效果能透过背景显示
  • 调整层级关系,确保sub-menu在hero内容上方,同时移除hero img不必要的z-index:-1(避免层级混乱)

修改后的完整代码

CSS 代码

nav {
  display: inline-flex;
  width: 100%;
  position: relative;
  z-index: 10; /* 确保导航栏在最上层 */
}

.nav-list {
  display: flex;
  width: 100%;
  margin-top: .7rem;
  padding-left: 1.1rem;
}

.nav-list li {
  position: relative;
}

.nav-list>li>a {
  color: black;
  display: block;
  font-size: 1rem;
  padding: 1.3rem 1rem;
  text-transform: uppercase;
  transition: color 300ms;
}

.nav-list>li>a::after {
  content: "";
  position: absolute;
  background-color: #ff2a00;
  height: 3.6px;
  width: 0;
  left: 0;
  bottom: 0px;
  transition: 0.1s;
}

.nav-list>li>a:hover:after {
  width: 100%;
}

.sub-menu {
  display: flex;
  position: fixed;
  box-sizing: border-box;
  background-color: rgba(0, 0, 0, 0.8); /* 半透明背景 */
  visibility: hidden;
  top: 6.5rem;
  left: 3rem;
  width: 82.5rem;
  height: 35rem;
  backdrop-filter: blur(8px); /* 给下拉菜单后方内容加模糊 */
  z-index: 9; /* 确保在hero上方,低于导航栏 */
}

.sub-menu a {
  position: relative;
  top: 2rem;
  color: white;
  font-size: 1.1rem;
  font-weight: 200;
  padding: 0 40px 0 40px;
}

.nav-list li:hover>.sub-menu {
  visibility: visible;
  opacity: 1;
}

.hero>img {
  position: relative;
  top: 6.3rem;
  left: 4.5rem;
}

HTML 代码

<nav>
  <ul class="nav-list">
    <li>
      <a href="">Test 1</a>
      <ul class="sub-menu">
        <li><a href="#">shirts</a> </li>
        <li><a href="#">Shorts</a></li>
      </ul>
    </li>
    <li>
      <a href="#">Test 2</a>
      <ul class="sub-menu">
        <li><a href="#">shirts</a> </li>
      </ul>
    </li>
  </ul>
</nav>

<div class="hero">
  <img src="https://picsum.photos/200/300" alt="" style="height: 690px;width: 1300px;">
</div>

额外扩展:全局内容模糊

如果希望下拉菜单展开时所有下方内容都模糊(而非仅下拉菜单覆盖区域),可以添加全局模糊遮罩:

  1. 在HTML中插入遮罩层(放在nav之后、hero之前):
<div class="blur-overlay"></div>
  1. 添加对应CSS:
.blur-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  backdrop-filter: blur(5px);
  z-index: 8;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s;
}

/* 导航悬停时显示遮罩 */
.nav-list li:hover ~ .blur-overlay {
  visibility: visible;
  opacity: 1;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 10:21:05