2015-12-17 24 views
6

C'è un modo per adattare una sorta di testo su shinydashboard con il wrap di parole? Sembra che il comportamento predefinito si diffonda nell'area del corpo.shinydashboard Sidebar Menu Overflow

Vorrei evitare di modificare css direttamente, tuttavia se c'è una soluzione che comporta la modifica CSS come parte del codice server/ui stesso, allora sono aperto a questo.

ui <- dashboardPage(
    dashboardHeader(
     title = "Sidebar spill" 

    ), 
    dashboardSidebar(
     sidebarMenu(
     menuItem(text = "sfsdf sfaosh oas fwue wi aseiu wehw wuer woeur owuer ") 
     ) 
    ), 
    dashboardBody(
     fluidRow(

    ) 
    ) 
) 

server <- function(input, output) { 

} 

shinyApp(ui, server) 
} 
+0

Questo suona come qualcosa che può essere risolto impostando il CSS. Qualcosa del genere: http://www.w3schools.com/cssref/css3_pr_word-wrap.asp – Shape

+0

Ho provato anche alcuni altri trucchi CSS ma non sono riuscito a ottenere una soluzione. I migliori che ho gestito sono scrollbar con 'overflow'. – TheComeOnMan

+0

se vuoi modificarlo come parte del codice, puoi sempre usare 'tags $ head (tag $ style (PUTCSSCODEHERE))'. Puoi sempre incollare il tuo css a livello di codice se sei disposto a restituire quei tag da un 'renderUI' – Shape

risposta

0

che dire qualcosa di simile

... 
    dashboardSidebar(
    sidebarMenu(
     tags$div(class="header", checked=NA, 
       tags$p("sfsdf sfaosh oas fwue", tags$br(), "wi aseiu wehw wuer woeur owuer") 
    ) 
    ) 
), 
... 
+0

Questo funzionerebbe per questo caso isolato. Potrebbe non funzionare su display diversi o con elementi diversi. – TheComeOnMan

+0

forse dovresti aggiungere un altro esempio (o come dici uno schermo diverso) alla tua domanda :) – MLavoie

+0

Ogni volta che cambio il testo, dovrò ricalcolare il posizionamento di 'tags $ br()'. Ecco perché non funzionerà su diversi elementi. – TheComeOnMan

2

Il file "AdminLTE.min.css" (questa versione di esso in ogni caso in questa versione di Shinydashboard) specifica "white-space: nowrap importante" per la classe "sidebar-menu" e gli elementi "li" con "header" di classe che sono diretti discendenti di elementi con la classe "sidebar-menu". Ho visto che gli elementi "li" nel menu della barra laterale della mia applicazione Shinydashboard non hanno la classe "header", quindi ho annullato "white-space: nowrap! Important" (che veniva applicato perché l'elemento "ul" che contiene il menu è di classe "barra laterale-menu") aggiungendo il seguente CSS a un file CSS personalizzato:

.sidebar-menu > li { 
    white-space: normal; 
}