2013-12-11 12 views
6

Come mostra la schermata: la barra laterale utilizza solo il 50% circa dell'area coperta. Anche questo non cambierà se estraggo 'fileInput' (si estende solo orizzontalmente tanto quanto lo spazio è disponibile).Riduci area inutilizzata della barra lateralePannello

enter image description here

Il codice di interfaccia utente è totalmente piastra della caldaia, che è il motivo per cui non credo che ci sia più molto senso postarlo. L'effetto rimane lo stesso anche quando tolgo tutti i campi di input dell'interfaccia utente. Di fatto, la larghezza della sidebarPanel è apparentemente calcolata indipendentemente dal suo contenuto ma dipende da un rapporto fisso.

Vorrei regolare manualmente la dimensione o il rapporto barra laterale/mainpanel. Come potrei ottenere quello?

risposta

10

Questo funziona per me. Posizionare questo al di fuori dell'oggetto shinyUI:

narrowSidebar <- HTML('<style>.span4 {min-width: 265px; max-width: 265px; }</style>') 

e collocarlo in cima sidebarPanel:

tags$head(narrowSidebar), ... 

È possibile modificare il pannello principale ripetendo il processo di cui sopra, ma che cambia "span4" a "span8 ".

Potrebbe aiutare a capire cosa sta succedendo. ShinyUI predefinito utilizza Bootstrap per la formattazione. Bootstrap utilizza una griglia di 12 unità per il contenuto del layout. Si utilizza "span #" per far sì che qualsiasi contenitore occupi la maggior parte della griglia.

Shiny utilizza span4 per la barra laterale (4/12 = 1/3 della pagina) e 8 per il pannello principale (8/12 = 2/3 della pagina).

Onestamente penso che dovrebbe essere 3/9 o 2/12, ma usando i trucchi di cui sopra non è troppo difficile modellare le cose come si desidera.

+0

grazie, soprattutto per le informazioni aggiuntive - questo fa il trucco – Raffael

+0

Questo non ha funzionato per me! Esistono altri metodi oltre a questo? –

2

Non so da quando, ma sidebarPanel e mainPanel ora hanno un argomento aggiuntivo width. In questo modo è possibile regolare la dimensione dei pannelli direttamente nel solito concetto di griglia. (Valori da 1 a 12)