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

如何用CSS为Bootstrap下拉菜单添加模糊效果?

解决Bootstrap下拉菜单模糊效果不生效的问题

问题根源在于Bootstrap默认给.dropdown-menu设置了不透明背景色,直接给元素添加backdrop-filter会被默认背景遮挡,需要通过伪元素来实现模糊效果,同时重置默认背景样式:

修正后的CSS代码

.navbar {
  background-color: rgba(255, 255, 255, 0.8) !important;
  backdrop-filter: blur(3px);
}

.dropdown-menu {
  background-color: transparent !important; /* 重置默认背景为透明 */
  border: none; /* 可选:去掉默认边框,让模糊效果更自然 */
  position: relative; /* 为伪元素提供定位上下文 */
}

.dropdown-menu::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(3px);
  z-index: -1; /* 将伪元素置于菜单内容下方,避免遮挡文字 */
  border-radius: var(--bs-dropdown-border-radius); /* 继承Bootstrap默认圆角 */
}

原理说明

  1. 先将.dropdown-menu自身背景设为透明,消除默认背景对模糊效果的遮挡
  2. 通过::before伪元素创建与菜单尺寸完全匹配的层,在该层上应用半透明背景和模糊滤镜
  3. 利用z-index: -1确保伪元素不会覆盖菜单内的文字与链接

完整可测试代码

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link
    href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css"
    rel="stylesheet"
    integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ"
    crossorigin="anonymous"
  />
  <script
    src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"
    integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe"
    crossorigin="anonymous"
  ></script>
  <style>
    .navbar {
      background-color: rgba(255, 255, 255, 0.8) !important;
      backdrop-filter: blur(3px);
    }

    .dropdown-menu {
      background-color: transparent !important;
      border: none;
      position: relative;
    }

    .dropdown-menu::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background-color: rgba(255, 255, 255, 0.8);
      backdrop-filter: blur(3px);
      z-index: -1;
      border-radius: var(--bs-dropdown-border-radius);
    }
  </style>
</head>
<body>
  <nav class="navbar navbar-expand-lg fixed-top">
    <div class="container">
      <a class="navbar-brand" href="#">Navbar</a>
      <button
        class="navbar-toggler"
        type="button"
        data-bs-toggle="collapse"
        data-bs-target="#navbarNavDropdown"
        aria-controls="navbarNavDropdown"
        aria-expanded="false"
        aria-label="Toggle navigation"
      >
        <span class="navbar-toggler-icon"></span>
      </button>
      <div class="collapse navbar-collapse" id="navbarNavDropdown">
        <ul class="navbar-nav">
          <li class="nav-item">
            <a class="nav-link active" aria-current="page" href="#">Home</a>
          </li>
          <li class="nav-item dropdown">
            <a
              class="nav-link dropdown-toggle"
              href="#"
              role="button"
              data-bs-toggle="dropdown"
              aria-expanded="false"
            >
              Dropdown link
            </a>
            <ul class="dropdown-menu">
              <li><a class="dropdown-item" href="#">Action</a></li>
              <li><a class="dropdown-item" href="#">Another action</a></li>
            </ul>
          </li>
        </ul>
      </div>
    </div>
  </nav>
  <h1>Example Text</h1>
  <h1>Example Text</h1>
  <h1>Example Text</h1>
  <h1>Example Text</h1>
  <h1>Example Text</h1>
</body>
</html>

内容的提问来源于stack exchange,提问作者Dra-Code

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 00:32:13