2017-02-10 1 views
0

Ich habe versucht, die Farben einer Shiny App anzupassen. Das minimale Beispiel mit diesem CodeR Shiny: Hintergrundfarbe ändert sich mit der Browsergröße

library(shinydashboard) 
library(shiny) 

header <- dashboardHeader() 
sidebar <- dashboardSidebar() 
body <- dashboardBody(
tags$head(
    tags$style(
     HTML(
      '.skin-black .main-sidebar {color: #FFFFFF; background-color: #9A373C;} 
      .skin-black .main-header .navbar { background-color: #ffffff;} 
      .skin-black .span12 { background-color: #ffffff;}' 
     ) 
    ) 
) 
) 

ui <- dashboardPage(header, sidebar, body,skin = "black") 
server <- function(input, output) {} 
shinyApp(ui, server) 

erzeugt eine App, die einen weißen Kopf hat, wenn das Browser-Fenster ist groß und ein schwarz/weiß-Header, wenn das Browser-Fenster klein ist.

enter image description here

Was kann ich tun, um zu bekommen, ist es immer weiß?

Ich frage, weil ich ein Logo in der oberen linken Ecke platziere es sieht schrecklich aus, wenn die Hintergrundfarbe schwarz wird, nur weil jemand die App in einem kleineren Fenster betrachtet.

Antwort

1

Ich denke, das bringt Sie dahin, wo Sie wollen, aber ich habe alles getan, indem ich die Stile der relevanten Elemente untersucht habe, und ich fürchte, das ist es, was Sie in diesen Situationen tun müssen - es gibt kein besseres Antwort als nur Versuch und Störung ...

Hoffnung hilft es!

library(shinydashboard) 
library(shiny) 

header <- dashboardHeader() 
sidebar <- dashboardSidebar() 
body <- dashboardBody(
    tags$head(
     tags$style(
      HTML(
      '.skin-black .main-sidebar {color: #FFFFFF; background-color: #9A373C;} 
      .skin-black .span12 { background-color: #ffffff;} 
      .skin-black .main-header .navbar { background-color: #ffffff;} 
      .skin-black .main-header > .logo { background-color: #ffffff;} 
      .skin-black .main-header > .logo:hover { background-color: #ffffff;} 
      .skin-black .main-header .logo, .skin-black .main-header .navbar { transition: color 0s; }' 
      ) 
     ) 
    ) 
) 

ui <- dashboardPage(header, sidebar, body,skin = "black") 
server <- function(input, output) {} 
shinyApp(ui, server) 
+0

Vielen Dank! Das funktioniert perfekt. Ich frage mich nur, woher du diese Informationen bekommst. Es gibt viele Tutorials auf der Shiny Website, aber sie sind oberflächlich. –

+0

Sicher Sache! Ja, die Shiny-Website ist nicht der Ort, an dem Sie suchen sollten, wie Sie Ihre Website mit HTML-CSS oder JS anpassen können ... Shiny hat ein paar sehr gute out-of-the-box-Lösungen, aber dann ist es wieder mit guten manuellen Feineinstellungen. Von einer kurzen Online-Suche habe ich [dieses hilfreiche Tutorial] (https://zapier.com/blog/inspect-element-tutorial/) gefunden, das Ihnen beibringt, wie man eine Seite prüft und optimiert, bis Sie das gewünschte Aussehen erhalten. Dann injiziere das CSS einfach mit 'tags $ head (Tags $ style (HTML (...)))' in deine App '' –

Verwandte Themen