R Shiny如何实现wellPanel内按钮/图标单行对齐?
问题原因
按钮换行是因为默认的按钮元素自带外边距,且你使用的inline-block布局不会自动压缩元素宽度,容器宽度不足时就会触发换行。
解决方法
将包裹按钮的容器改为flex布局,强制子元素在同一行展示,同时调整按钮间距即可,修改后的dashboardSidebar代码如下:
sidebar = dashboardSidebar( wellPanel( "Export Options", id = "DownloadPanel", style = "background: #222d32; max-height: 145px; max-width: 220px; align-items: center", fixedRow( # 修改容器为flex布局,设置水平间距分配、垂直居中规则 tags$div(style="display: flex; justify-content: space-around; align-items: center; width: 100%;", # 给每个按钮添加边距控制,避免默认边距撑满容器 screenshotButton(selector="#TableC", label = NULL, filename = paste("Summary"), style = "margin: 0 2px;"), downloadButton(outputId = "SummaryExcelDownload", label = NULL, icon = icon("file-excel"), class = "butt1", style = "margin: 0 2px;"), downloadButton(outputId = "SummaryPdfDownload", label = NULL, icon = icon("file-pdf"), class = "butt2", style = "margin: 0 2px;") ) ) ), # 样式定义统一放在外层,避免重复嵌套声明 tags$head(tags$style(".butt{background-color:white;} .butt1{color: #217346 !important;} .butt2{color: #b30c00 !important;}")) )
补充说明
你原来把tags$head写在按钮参数里的写法不符合规范,移到sidebar层级即可全局生效,不需要每个按钮都重复声明。
内容的提问来源于stack exchange,提问作者Anitha
相关产品推荐
相关产品推荐

