web-dev-qa-db-fra.com

Règle horizontale h () dans la barre latérale brillante R

Vous pouvez normalement créer une règle horizontale sous les éléments de l'interface utilisateur avec hr() lorsque vous utilisez fluidRow() dans Shiny, mais vous ne pouvez pas le faire dans une sideBarPanel() sous texte. Comment puis-je créer une règle horizontale, ou quelque chose comme ça, pour diviser le texte et les éléments d'interface utilisateur dans ma barre latérale?

13
tsouchlarakis

En général, la ligne est visible, mais avec un contraste très faible avec l'arrière-plan. Pour rendre la ligne plus visible, vous pouvez modifier le code CSS en incluant les éléments suivants dans la partie ui:

  tags$head(
    tags$style(HTML("hr {border-top: 1px solid #000000;}"))
  ),

avec tags$style(HTML(...)) vous pouvez inclure CSS dans votre application. La balise html de la ligne est hr. Et le paramètre restant indique la spécification du choix de ligne, la largeur, la couleur, etc.

Pour un exemple de travail complet, voir ci-dessous:

library(shiny)

ui <- fluidPage(
  tags$head(
    tags$style(HTML("hr {border-top: 1px solid #000000;}"))
  ),
   sidebarLayout(
      sidebarPanel(
         "text",
         hr(),
         uiOutput("out")
      ),
      mainPanel(
         plotOutput("distPlot")
      )
   )
)

server <- function(input, output) {
  output$out <- renderUI({
    sliderInput("bins",
                "Number of bins:",
                min = 1,
                max = 50,
                value = 30)
  })
}


shinyApp(ui = ui, server = server)
11
BigDataScientist