2017-11-24 20 views
2

Ich habe textAreaInput() in dashboardHeader verwendet, um mehrere Zeilen in der Kopfzeile zuzulassen. Die Hintergrundfarbe dieses Textbereichs ist jedoch weiß und kann nicht in das Titelfeld eingeblendet werden. Ich möchte die Hintergrundfarbe dieses Textbereichs in entweder transparent oder die gleiche Farbe ändern, die in dem dashboardHeader verwandt wird. Ich habe etwas wie unten versucht. Aber es funktioniert nicht. Irgendwelche Vorschläge? Vielen Dank!Wie Hintergrundfarbe für TextAreaInput in r glänzend ändern?

library(shiny) 
library(shinydashboard) 

shinyApp(server = function(input, output) {}, ui = 

dashboardPage(skin = "blue", 

dashboardHeader(
    title = textAreaInput(inputId = 'header',label = NULL, 
          width = 250, height = 100, 
          value = "This is a very very very very very loooooong title" 
        ), 
    titleWidth = 260 
), 

dashboardSidebar(
    width = 260,  
    sidebarMenu(
     menuItem("About", tabName = "about", icon = icon("circle")), 
     menuItem("References", tabName = "ref", icon = icon("book")) 
    ) 
), 

dashboardBody(

    tags$head(tags$style(HTML(' 
      .textArea { 
       background-color: #0000ff; 
       border: none; 
      } 
    '))), 

    tabItems(
     tabItem(tabName = 'about'), 
     tabItem(tabName = 'ref') 
    ) 
) 
)) 

Antwort

1

Hallo, Sie haben zwei choises

zuerst ein, wenn Sie die backgrondcolor für jede Textarea ändern möchten. Ich muss den Punkt vor textArea entfernen, da es sich um ein Tag handelt, das keine Klasse ist. Die Punkte davor weisen den Bezeichner an, nach einer Klasse zu suchen. dann musst du hinzufügen! wichtig nach der Farbe so.

tags$head(tags$style(HTML(' 
    textArea { 
    background-color: #0000ff !important; 
    border: none; 
    }'))) 

die zweite ist, wenn Sie die Hintergrundfarbe für diese spezielle Textarea ändern wollen ist besser, die id #header und in diesem Fall verwenden Sie die !important

tags$head(tags$style(HTML(' 
    #header{ 
    background-color: #0000ff !important; 
    border: none; 
    }'))) 

Hoffnung nicht brauchen diese hilft!

+0

Vielen Dank für Ihre ausführliche Antwort! Beide Möglichkeiten haben perfekt funktioniert! Ich habe auch 'background: transparent' in' textArea' oder '#header' versucht und es hat auch funktioniert. Es ist einfacher, dass ich den genauen Hex-Code, der dort für die Standardfarbe verwendet wird, nicht kennen muss. Aber ich müsste die Textfarbe ändern, um sie besser sichtbar zu machen. – Lilyzeng