我想自定义一个闪亮的应用程序,tabsetPanels以便所选面板显示在带有白色文本的黑色背景中,未选中的选项卡显示带有黑色文本的白色背景.
例如,在下面的应用程序中,当选择"Hello"选项卡时,我希望"Hello"在黑色背景上为白色文本.但我仍然希望面板内容(输入字段)的背景保持白色.
我能找到的最接近的东西来自这个问题:shinydashboard的Tab Box CSS
应用该代码产生彩色的背景横跨tabsetPanel一路,但我仍然无法找到一个方法来修改这个只改变标签的背景.此外,我在.nav-tabs-customCSS中改变的任何东西似乎都没有任何效果.
我不断尝试将更改应用于tab-pane标记CSS,但是将更改推送到选项卡的主体,而不是标题框.
关于我可以更改什么以获取标题框以更改背景颜色的任何想法?
ui <- shinyUI(
fluidPage(
tags$style(".nav-tabs {
background-color: #006747;
}
.nav-tabs-custom .nav-tabs li.active:hover a, .nav-tabs-custom .nav-tabs li.active a {
background-color: transparent;
border-color: transparent;
}
.nav-tabs-custom .nav-tabs li.active {
border-top-color: #FFF;
}"),
tabsetPanel(
tabPanel(
title = "Hello",
textInput(inputId = "text", label = "Input")
),
tabPanel(
title = "World"
)
)
)
)
server <- shinyServer(function(input, output, session){
})
shinyApp(ui=ui, server=server)
Run Code Online (Sandbox Code Playgroud)
Mik*_*ise 15
上面的例子显然是破坏的(从版本0.14.0),可能是由于闪亮的CSS变化.此外,该帖子的标题承诺的不仅仅是实际涵盖的实际问题和解决方案.所以我写了一个更全面的新例子.
从UI的角度来看,所有这些颜色是否是一个好主意是另一个问题......
这是代码:
library(shiny)
ui <-shinyUI(fluidPage(
h1("Colored Tabs"),
tags$style(HTML("
.tabbable > .nav > li > a {background-color: aqua; color:black}
.tabbable > .nav > li > a[data-value='t1'] {background-color: red; color:white}
.tabbable > .nav > li > a[data-value='t2'] {background-color: blue; color:white}
.tabbable > .nav > li > a[data-value='t3'] {background-color: green; color:white}
.tabbable > .nav > li[class=active] > a {background-color: black; color:white}
")),
tabsetPanel(
tabPanel("t0",h2("normal tab")),
tabPanel("t1",h2("red tab")),
tabPanel("t2",h2("blue tab")),
tabPanel("t3",h2("green tab")),
tabPanel("t4",h2("normal tab")),
tabPanel("t5",h2("normal tab"))
)
))
server <- function(input, output) {}
shinyApp(ui=ui,server=server)
Run Code Online (Sandbox Code Playgroud)
这是一个屏幕截图:
如果再次中断,并且必须调整代码,这里是生成此代码的当前css/html:
<body>
<div class="container-fluid">
<h1>Colored Tabs</h1>
<style>
.tabbable > .nav > li > a {background-color: aqua; color:black}
.tabbable > .nav > li > a[data-value='t1'] {background-color: red; color:white}
.tabbable > .nav > li > a[data-value='t2'] {background-color: blue; color:white}
.tabbable > .nav > li > a[data-value='t3'] {background-color: green; color:white}
.tabbable > .nav > li[class=active] > a {background-color: black; color:white}
</style>
<div class="tabbable">
<ul class="nav nav-tabs">
<li class="active">
<a href="#tab-5851-1" data-toggle="tab" data-value="t0">t0</a>
</li>
<li>
<a href="#tab-5851-2" data-toggle="tab" data-value="t1">t1</a>
</li>
<li>
<a href="#tab-5851-3" data-toggle="tab" data-value="t2">t2</a>
</li>
<li>
<a href="#tab-5851-4" data-toggle="tab" data-value="t3">t3</a>
</li>
<li>
<a href="#tab-5851-5" data-toggle="tab" data-value="t4">t4</a>
</li>
<li>
<a href="#tab-5851-6" data-toggle="tab" data-value="t5">t5</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane active" data-value="t0" id="tab-5851-1">
<h2>normal tab</h2>
</div>
<div class="tab-pane" data-value="t1" id="tab-5851-2">
<h2>red tab</h2>
</div>
<div class="tab-pane" data-value="t2" id="tab-5851-3">
<h2>blue tab</h2>
</div>
<div class="tab-pane" data-value="t3" id="tab-5851-4">
<h2>green tab</h2>
</div>
<div class="tab-pane" data-value="t4" id="tab-5851-5">
<h2>normal tab</h2>
</div>
<div class="tab-pane" data-value="t5" id="tab-5851-6">
<h2>normal tab</h2>
</div>
</div>
</div>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
编辑:闪亮版> = 0.14见这里.
如果您选择带有"活动"类的链接作为导航的直接后代,我认为您可以获得您所追求的内容.用户界面看起来像
ui <- shinyUI(
fluidPage(
tags$style(HTML("
.tabs-above > .nav > li[class=active] > a {
background-color: #000;
color: #FFF;
}")),
tabsetPanel(
tabPanel(
title = "Hello",
textInput(inputId = "text", label = "Input")
),
tabPanel(
title = "World"
)
)
)
)
Run Code Online (Sandbox Code Playgroud)