2013-12-11 7 views
6

Wie der Screenshot zeigt - verwendet das sidebarPanel nur etwa 50% der Fläche, die es abdeckt. Dies ändert sich auch nicht, wenn ich 'fileInput' herausnehme (es erstreckt sich nur horizontal, so viel Speicherplatz verfügbar ist).Reduzieren Sie den unbenutzten Bereich von sidebarPanel

enter image description here

Der Code UI ist völlig Kesselblech, weshalb ich glaube nicht, dass es in der Veröffentlichung es viel Sinn. Der Effekt bleibt gleich, auch wenn ich alle Eingabefelder der Benutzeroberfläche entferne. In der Tat wird die Breite des SidebarPanels offensichtlich unabhängig von seinem Inhalt berechnet, hängt aber von einem festen Verhältnis ab.

Ich möchte die Größe oder sidebar-/mainPanel-Verhältnis manuell anpassen. Wie könnte ich das erreichen?

Antwort

10

Das funktioniert für mich. Legen Sie diese außerhalb des shinyUI Objekt:

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

und legen Sie diese an der Spitze sidebarPanel:

tags$head(narrowSidebar), ... 

Sie können das Hauptfenster ändern, indem Sie den obigen Vorgang wiederholen, aber Ändern „span4“ auf „span8 ".

Es könnte helfen zu verstehen, was vor sich geht. Der Standard-ShinyUI verwendet Bootstrap zum Formatieren. Bootstrap verwendet ein 12-Einheiten-Gitter, um Inhalte zu gestalten. Sie verwenden "span #", damit ein Container den größten Teil des Rasters ausfüllt.

Shiny verwendet span4 für die Seitenleiste (4/12 = 1/3 der Seite) und 8 für die Hauptanzeige (8/12 = 2/3 der Seite).

Ich glaube ehrlich, es sollte 3/9 oder 2/12 sein, aber mit den oben genannten Tricks ist es nicht zu schwer, Dinge so zu stylen, wie Sie wollen.

+0

danke, vor allem für die zusätzlichen Infos - das macht den Trick – Raffael

+0

Das hat bei mir nicht funktioniert! Gibt es noch andere Methoden? –

2

Ich weiß nicht seit wann, aber sidebarPanel und mainPanel haben jetzt ein zusätzliches Argument width. So können Sie die Größe der Panels direkt im üblichen Grid-Konzept anpassen. (Werte 1 bis 12)

Verwandte Themen