Shiny Dashboard侧边栏宽度控制参数失效问题求助
解决Shiny Dashboard侧边栏宽度参数不生效的问题
问题原因
你设置的titleWidth和dashboardSidebar(width=350)参数失效,核心原因是自定义主题my_theme的CSS规则覆盖了默认参数生成的样式。shinydashboard的主题会优先加载自身的CSS,导致你设置的宽度参数被忽略。
解决方法
方法1:修改自定义主题的CSS
找到你的my_theme对应的CSS文件,定位到侧边栏相关样式规则,直接修改宽度值:
/* 主题文件中修改 */ .main-sidebar { width: 350px; } .content-wrapper, .right-side { margin-left: 350px; } .main-header .logo { width: 350px; } .main-header .navbar { margin-left: 350px; }
方法2:在UI中添加自定义CSS强制覆盖
无需修改主题文件,直接在UI代码中插入自定义CSS,用!important强制覆盖主题样式:
ui <- dashboardPage(title="BS",skin="black",dbHeader, dashboardSidebar( width=350, use_theme(my_theme), # 添加自定义CSS tags$style(HTML(" .main-sidebar { width: 350px !important; } .content-wrapper, .right-side { margin-left: 350px !important; } .main-header .logo { width: 350px !important; } .main-header .navbar { margin-left: 350px !important; } ")), sidebarMenu( menuItem("Guide utilisateur", tabName = "readme", icon = icon("circle-info")), menuItem("Analyse Région", tabName = "sociodemo", icon = icon("chart-simple"),badgeColor="yellow"), menuItem("Tri à plat", tabName = "analyse_question", icon = icon("table")), menuItem("Dictionnaire", tabName = "dico", icon = icon("book"),badgeColor="yellow") ), # 其余侧边栏内容... ), dashboardBody( use_theme(my_theme), # 其余内容... ) )
额外注意
确认dbHeader是正确的dashboardHeader对象,且titleWidth=350确实作为参数传递给了它,避免参数位置错误导致失效。
内容的提问来源于stack exchange,提问作者Harrison Ford
相关产品推荐
相关产品推荐

