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

如何结合dark-mode-switch实现ASP.Net汉堡菜单的navbar样式切换?

解决暗黑模式下导航栏类切换问题

方法一:纯CSS实现(无需修改JS)

dark-mode-switch脚本会在暗黑模式开启时给<html>标签添加dark类,关闭时移除。你可以直接通过CSS选择器控制导航栏样式,不需要切换navbar-light/navbar-dark类:

/* 暗黑模式下应用navbar-dark的样式特性 */
html.dark .navbar {
  background-color: #212529; /* 匹配Bootstrap navbar-dark的默认背景色 */
  color: #fff;
}
/* 继承Bootstrap navbar-dark的文字样式规则 */
html.dark .navbar .navbar-brand,
html.dark .navbar .nav-link {
  color: rgba(255,255,255,.9);
}
html.dark .navbar .nav-link:hover {
  color: rgba(255,255,255,.7);
}

方法二:JS监听模式切换(切换类实现)

不用修改原dark-mode-switch.min.js,在项目的自定义脚本中添加以下代码,监听模式切换事件来切换导航栏的类:

// 获取导航栏元素
const navbar = document.querySelector('.navbar');

// 监听暗黑模式切换事件
document.addEventListener('darkModeSwitch', (e) => {
  if (e.detail.darkMode) {
    // 开启暗黑模式:替换类
    navbar.classList.remove('navbar-light', 'bg-white');
    navbar.classList.add('navbar-dark', 'bg-dark');
  } else {
    // 关闭暗黑模式:恢复原类
    navbar.classList.remove('navbar-dark', 'bg-dark');
    navbar.classList.add('navbar-light', 'bg-white');
  }
});

// 页面加载时初始化导航栏状态
window.addEventListener('DOMContentLoaded', () => {
  if (document.documentElement.classList.contains('dark')) {
    navbar.classList.remove('navbar-light', 'bg-white');
    navbar.classList.add('navbar-dark', 'bg-dark');
  }
});

说明

两种方案都无需修改原dark-mode-switch脚本:

  • CSS方案适合只需要调整样式的场景,代码更简洁;
  • JS方案完全贴合你想要切换navbar-light/navbar-dark类的需求,逻辑更直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 22:40:02