2017-02-10 264 views
0

我試圖自定義Shiny應用程序的顏色。與此代碼R Shiny:背景顏色隨瀏覽器尺寸變化

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) 

最小示例生成具有白色頭當瀏覽器窗口是大和一個黑/白頭當瀏覽器窗口是小應用程式。

enter image description here

我能爲了做的就是它始終是白色?

我在問,因爲我在左上角的矩形中放置了一個徽標,當背景顏色變黑時,僅僅因爲有人正在小窗口中查看應用程序而看起來很糟糕。

回答

1

我認爲這可以讓你得到你想要的東西,但是我通過檢查相關元素的樣式來做到了這一切,恐怕在這些情況下你需要做的是 - 沒有更好的方法答案不只是試錯...

希望它有幫助!

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

謝謝!這工作完美。我只是想知道你從哪裏得到這些信息。 Shiny網站上有很多教程,但它們很膚淺。 –

+0

當然可以!是的,Shiny網站並不是你應該尋找如何使用HTML CSS或JS來定製你的網站的地方...... Shiny有幾個非常好的現成解決方案,但是它回到了舊的手動調整。從快速在線搜索中,我找到了[這個有用的教程](https://zapier.com/blog/inspect-element-tutorial/),教你如何檢查和調整一個頁面,直到你看到你想要的外觀。然後,只需使用'tags $ head(tags $ style(HTML(...)))'將該CSS注入到您的應用程序中 –