Shiny中的对象分配

时间:2017-04-23 12:46:39

标签: r shiny shinydashboard

我正在尝试制作一个包含3个主题的仪表板。因此,我已经制作了3个盒子,但我想要实现的是主页面中的3个盒子,它们将覆盖页面的整个宽度,但它们非常窄。 据我所知,页面的整个宽度是12个单位,所以我制作了这段代码:

library(shiny)
library(shinydashboard)

sidebar <- dashboardSidebar(
  sidebarMenu(
    menuItem("Dashboard", tabName = "main", icon = icon("dashboard")),
    menuItem("Widgets", icon = icon("th"), tabName = "widgets")
  )
)

body <- dashboardBody(
  tabItems(
    tabItem(tabName = "main",
            tags$head(
              tags$style(HTML("
                              h2,h4{
                              text-align: center;
                              }
                              "
              ))
              ),
            h2("Title"),
            h4("Dashboard"),
            fluidRow(
              column(4,
                     box(title="Advance Analysis Tools", hr(),
                         tags$ul( tags$li("Object"), tags$li("Object"), tags$li("Object"), tags$li("Object") ))),
              column(4,
                     box(title="Quality",hr(),
                         tags$ul( tags$li("Object"),tags$li("Object")) )),
              column(4,
                     box(title="Operation",hr(),
                         tags$ul( tags$li("Object"),tags$li("Object"),tags$li("Object"),tags$li("Object"), tags$li("Object"), tags$li("Object") )))
            )
              )

              )
            )

ui <- dashboardPage(
  dashboardHeader(title = "Dashboard"),
  sidebar,
  body
)

server <- function(input, output) {

}

shinyApp(ui, server)

但是3个盒子没有正确传播。

请指教。

提前致谢,

迈克尔

1 个答案:

答案 0 :(得分:1)

box()函数也有一个宽度参数,就像你用于column()函数一样。 您可能已经知道12是该参数的最大值。 请注意,框的宽度与列宽有关。宽度参数为4的列(包括宽度参数为12的框)会生成一个完全填充该框并且宽度为4的列。

所以你可以使用类似的东西。

 column(4, 
   box(title="Operation",hr(), width = 12, ...

如果你想摆脱之间的空格,请使用sthg:  offset = 0, style='padding:0px;' 见这里:shiny fluidrow column white space