tabsetPanels
を使用して光沢のあるアプリケーションをカスタマイズして、選択したパネルが白いテキストの黒い背景に表示され、選択されていないタブが黒いテキストの白い背景に表示されるようにします。
たとえば、次のアプリケーションで、[こんにちは]タブが選択されている場合、 "こんにちは"が黒い背景に白いテキストで表示されるようにしたいと思います。しかし、パネルのコンテンツ(入力フィールド)の背景を白のままにしておく必要があります。
私が見つけることができた最も近いものはこの質問から来ます: 光沢のあるダッシュボード用のタブボックスCSS
そのコードを適用すると、tabsetPanel全体にわたって色付きの背景が生成されますが、これを変更してタブのみの背景を変更する方法はまだ見つかりません。さらに、.nav-tabs-custom
cssで変更したものは何も影響を与えないようです。
私は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)
編集:光沢のあるバージョン> = 0.14については こちら を参照してください。
Navの直接の子孫として「アクティブ」クラスのリンクを選択した場合、私はあなたが求めているものを得ることができると思います。 UIは次のようになります
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"
)
)
)
)
上記の例は明らかに(バージョン0.14.0から)壊れています、おそらくShiny 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)
これがスクリーンショットです:
そして、これが再び壊れてコードを調整する必要がある場合、これがこれを生成している現在の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>