设置各个 bsTooltip (shinyBS) 元素的样式

nd0*_*680 3 html css r shiny shinybs

我试图通过shinyBSbsTooltip()包的功能向我的shiny应用程序中的不同操作按钮添加一些工具提示,并且我想修改特定工具提示框的宽度。为此,我可以在 UI 开头指定 HTML 标签并直接修改 CSS,但如果我使用简单元素,我会修改代码中每个工具提示的宽度:.tooltip {...}

您可以在下面找到一个带有两个不同操作按钮的最小可重现示例:

library(shiny)
library(shinyBS)

library(shiny)

ui <- fluidPage(

  tags$head(tags$style(HTML(".tooltip {width: 300px;}"))),

  br(),

  actionButton(inputId = "button1",
               label = "First"),
  bsTooltip(id = "button1",
            title = "Bonjour!",
            placement = "right",
            trigger = "hover"),

  br(),
  br(),

  actionButton(inputId = "button2",
               label = "Second"),
  bsTooltip(id = "button2",
            title = "Hello!",
            placement = "right",
            trigger = "hover")

)

server <- function(input, output, session) {

}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

我以前遇到过这种情况,例如当我必须修改特定小部件的占位符的颜色textInput()时。为此,HTML()我在函数中指定:

tags$head(tags$style(HTML("#textinput_ID::placeholder {color: #EEE1525;}")))
Run Code Online (Sandbox Code Playgroud)

但这在这种情况下似乎不起作用。

非常感谢你的帮助!

Wil*_*ren 5

您可以将您的actionButtonand包装在带有 id 的bsTooltipa 中。现在您可以通过它的 iddiv选择它,并且只设置内部工具提示的样式。div

library(shiny)
library(shinyBS)

ui <- fluidPage(

  tags$head(tags$style(HTML("#button1_div .tooltip {width: 300px;}"))),

  br(),
  div(id='button1_div',
      actionButton(inputId = "button1",
                   label = "First"),
      bsTooltip(title = "Bonjour!",
                placement = "right",
                trigger = "hover")),

  br(),
  br(),

  actionButton(inputId = "button2",
               label = "Second"),
  bsTooltip(id = "button2",
            title = "Hello!",
            placement = "right",
            trigger = "hover")

)

server <- function(input, output, session) {

}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)