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

如何修改bs4Dash中navbarTab及下拉菜单的字体颜色

解决bs4Dash导航栏及下拉菜单文本颜色问题

要实现导航栏navbarTab文本设为黄色、下拉菜单文本设为绿色的需求,可借助fresh包自定义CSS样式,直接对对应HTML元素的样式进行覆盖。以下是修改后的完整代码:

library(shiny)
library(bs4Dash)
library(fresh)

# 自定义主题样式
my_theme <- create_theme(
  bs4dash_vars(
    navbar_light_color = "#ffd700" # 导航栏默认状态文本颜色(黄色)
  ),
  bs4dash_global(
    # 设置下拉菜单文本颜色(绿色)
    ".dropdown-menu .dropdown-item" = list(
      color = "#2e8b57"
    ),
    # 优化下拉菜单悬停样式
    ".dropdown-menu .dropdown-item:hover" = list(
      color = "#fff",
      backgroundColor = "#2e8b57"
    )
  )
)

ui <- dashboardPage(
  title = "Title",
  dark = NULL,
  help = NULL,
  theme = my_theme, # 应用自定义主题
  sidebar = dashboardSidebar(disable = T),
  header = dashboardHeader(
    status = "primary",
    title = dashboardBrand(
      title = "My Dashboard",
      color = "primary"
    ),
    navbarMenu(
      id = "navmenu",
      navbarTab(tabName = "Item 1", text = "Item 1"),
      navbarTab(
        text = "Items",
        dropdownHeader("List"),
        navbarTab(tabName = "Sub Item 2", text = "Sub Item 2"),
        navbarTab(tabName = "Sub Item 3", text = "Sub Item 3"),
        navbarTab(tabName = "Sub Item 4", text = "Sub Item 4"),
        navbarTab(tabName = "Sub Item 5", text = "Sub Item 5"),
        navbarTab(tabName = "Sub Item 6", text = "Sub Item 6")
      ),
      navbarTab(tabName = "Item 7", text = "Item 7"),
      navbarTab(tabName = "Item 8", text = "Item 8")
    )
  ),
  body = dashboardBody(
    tabItems(
    )
  )
)

server <- function(input, output, session) {

}

shinyApp(ui, server)

关键说明:

  • navbar_light_color 直接控制导航栏未激活状态下的navbarTab文本颜色,这里使用黄色十六进制值#ffd700
  • 通过bs4dash_global自定义.dropdown-menu .dropdown-item的样式,将下拉菜单文本设为绿色#2e8b57,同时补充悬停样式优化交互体验
  • 自定义主题需通过theme = my_theme参数传入dashboardPage才能生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 23:51:11