如何为单个Shiny selectInput设置选中项及下拉选项颜色?
解决Shiny中单个selectInput组件的样式定制问题
你当前的代码里,CSS选择器范围太宽泛,导致样式会作用于所有selectInput对应的Selectize组件。要只针对特定的selectInput(比如input1)设置样式,需要把样式规则限定在该组件对应的Selectize容器范围内,具体修改如下:
require(shiny) shinyApp( ui = fluidPage( tags$head(tags$style(HTML( "#input1 + .selectize-control .item, #input1 + .selectize-control .selectize-dropdown {color: blue;}" ))), selectInput(inputId = "input1", label = "Input 1", choices = letters), selectInput(inputId = "input2", label = "Input 2", choices = letters) ), server = function(input, output, session) {} )
关键修改说明:
- 用
#input1 + .selectize-control精准定位input1对应的Selectize容器:selectInput渲染后,原始input元素(id为input1)的相邻兄弟元素就是Selectize的控制容器 - 将
.item(选中项)和.selectize-dropdown(下拉选项)的样式规则嵌套在这个容器选择器下,确保样式只作用于input1对应的组件,不会影响其他selectInput
内容的提问来源于stack exchange,提问作者Ben Ernest
相关产品推荐
相关产品推荐

