如何在shinydashboard的box左侧添加红色栏而非顶部?
实现shinydashboard左侧带红色栏的box
shinydashboard及shinydashboardPlus本身没有内置的左侧栏样式box,但可以通过自定义CSS来实现需求。以下是修改后的完整代码:
## app.R ## library(shiny) library(shinydashboard) library(shinydashboardPlus) ui <- dashboardPage( dashboardHeader(), dashboardSidebar(), dashboardBody( # 自定义CSS样式 tags$style(HTML(" /* 给指定box添加左侧红色栏 */ .left-red-bar-box { border-left: 5px solid #dd4b39; /* 匹配shinydashboard danger主题的红色 */ padding-left: 15px; /* 调整内边距避免内容贴在红栏上 */ } /* 折叠状态下保证标题区域对齐 */ .left-red-bar-box .box-header { padding-left: 15px; } ")), box( title = "title", closable = TRUE, width = 10, status = "danger", solidHeader = FALSE, collapsible = TRUE, collapsed = TRUE, # 绑定自定义样式类 class = "left-red-bar-box" ) ) ) server <- function(input, output) { } shinyApp(ui, server)
关键说明:
- 通过
tags$style(HTML(...))插入自定义CSS,给目标box设置左侧红色边框,颜色沿用shinydashboard的danger主题色#dd4b39,可自行调整边框宽度和颜色值。 - 给目标box添加专属类名
left-red-bar-box,确保样式仅作用于指定box,不影响其他组件。 - 调整内边距是为了避免标题和内容紧贴红色栏,保证视觉舒适度。
如果需要多个box应用该样式,只需给对应的box都添加class = "left-red-bar-box"即可。
内容的提问来源于stack exchange,提问作者firmo23
相关产品推荐
相关产品推荐

