光泽仪表板的框和表格式不一致

efb*_*own 2 css r xtable rstudio shiny

我用下面的虚拟表制作了一个简单的闪亮仪表板。当我运行它并且窗口太薄时,表的列越过框的边缘。如果我把窗户弄得足够宽,那么桌子就可以装在盒子里了。

谁能提供更一致的格式帮助?解决方案可能是使框和表具有固定的宽度,使表列的宽度随框的宽度而变化,或者其他原因。

问题的底部是每个状态的屏幕快照,用于说明。

用户界面

library(shinydashboard)
header <- dashboardHeader(title="Dashboard")
sidebar <- dashboardSidebar(sidebarMenuOutput("menu"))
body <- dashboardBody(
  tabItems(
    tabItem(tabName = "Home",
            fluidRow(
              column(width = 4,
                     box(title = "Column 1", width = NULL, solidHeader = TRUE,
                         tableOutput("Table1")),
                     box(
                       title = "Title 1", width = NULL, solidHeader = TRUE,
                       "Box content")
              ),
              column(width = 4,
                     box(
                       title = "Column 2", width = NULL, solidHeader = TRUE,
                       tableOutput("Table2"))
              ),
              column(width = 4,
                     box(title = "Column 2", width = NULL, solidHeader = TRUE),
                     box(title = "Title 3", width = NULL, solidHeader = TRUE)
              )
            )
    )
  )
)

dashboardPage(header, sidebar, body)
Run Code Online (Sandbox Code Playgroud)

服务器

library(magrittr)
library(xtable)
col1 <- 1:10
col2 <- runif(10)
col3 <- "alphabet soup"
col4 <- c(TRUE, TRUE, FALSE, FALSE, TRUE)

Frame1 <- data.frame(col3, col1, col2, col4, col2, col3)
Frame2 <- data.frame(col3, col3, col3, col4)

server <- function(input, output) {
  output$menu <- renderMenu({
    sidebarMenu(
      menuItem("Home", tabName = "Home", icon = icon("home"))
    )
  })
  output$Table1 <- renderTable({
    xtable(Frame1)
  })
  output$Table2 <- renderTable({
    xtable(Frame2)
  })
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明 在此处输入图片说明

谢谢!

小智 5

添加此样式可以解决我的问题。

在custom.css中:

.content {
  overflow-y: auto;
}
Run Code Online (Sandbox Code Playgroud)

然后在闪亮的ui中将样式包含在css文件中:

tags$link(rel = "stylesheet", type = "text/css", href = "custom.css")
Run Code Online (Sandbox Code Playgroud)