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

Bootstrap5深色导航栏下拉菜单背景为黑,如何改为白色?

Bootstrap 5 深色导航栏内下拉菜单背景色问题解决

问题描述

使用Bootstrap 5框架时,将dropdown组件放在带有bg-dark类的导航栏内,下拉菜单背景为黑色;但放在导航栏外部时,下拉菜单背景为白色。需要实现深色导航栏内的下拉菜单为白色的效果。

相关代码片段:

<nav class="navbar navbar-expand-lg bg-dark " data-bs-theme="dark">
    <div class="container-fluid">
        <a class="navbar-brand" href="#">Navbar</a>
        <ul class="navbar-nav  mb-3">
            <li class="nav-item dropdown ">
                <a class="nav-link dropdown-toggle show" href="#" role="button" data-bs-toggle="dropdown"
                    aria-expanded="true">
                    <i class="bi bi-person-fill"></i>
                </a>
                <ul class="dropdown-menu dropdown-menu-end" data-bs-popper="static">
                    <li><a class="dropdown-item " href="#">Action</a></li>
                    <li><a class="dropdown-item" href="#">Another action</a></li>
                    <li>
                        <hr class="dropdown-divider">
                    </li>
                    <li><a class="dropdown-item" href="#">Something else here</a></li>
                </ul>
            </li>
        </ul>
    </div>
</nav>

<ul class="navbar-nav  mb-3">
    <li class="nav-item dropdown ">
        <a class="nav-link dropdown-toggle show" href="#" role="button" data-bs-toggle="dropdown"
            aria-expanded="true">
            <i class="bi bi-person-fill"></i>
        </a>
        <ul class="dropdown-menu " data-bs-popper="static">
            <li><a class="dropdown-item " href="#">Action</a></li>
            <li><a class="dropdown-item" href="#">Another action</a></li>
            <li>
                <hr class="dropdown-divider">
            </li>
            <li><a class="dropdown-item" href="#">Something else here</a></li>
        </ul>
    </li>
</ul>

差异原因

导航栏添加了data-bs-theme="dark"属性,Bootstrap 5的主题系统会让子元素继承该主题设置。下拉菜单作为导航栏的子组件,会自动应用深色主题的样式(背景色为深色);而导航栏外部的dropdown组件没有继承这个深色主题,使用默认的浅色主题样式,因此背景为白色。

解决方案

方法1:强制下拉菜单使用浅色主题

给导航栏内的dropdown-menu添加data-bs-theme="light"属性,直接覆盖继承的深色主题:

<ul class="dropdown-menu dropdown-menu-end" data-bs-theme="light" data-bs-popper="static">
    <li><a class="dropdown-item " href="#">Action</a></li>
    <li><a class="dropdown-item" href="#">Another action</a></li>
    <li>
        <hr class="dropdown-divider">
    </li>
    <li><a class="dropdown-item" href="#">Something else here</a></li>
</ul>

方法2:自定义CSS样式覆盖

添加自定义CSS,针对深色导航栏内的下拉菜单设置背景色和文本颜色:

.navbar[data-bs-theme="dark"] .dropdown-menu {
    background-color: #ffffff;
    color: #000000;
}

.navbar[data-bs-theme="dark"] .dropdown-item {
    color: #000000;
}

.navbar[data-bs-theme="dark"] .dropdown-item:hover,
.navbar[data-bs-theme="dark"] .dropdown-item:focus {
    background-color: #f8f9fa;
    color: #000000;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 05:43:22