首页 > 解决方案 > 为单个 bsTooltip (shinyBS) 元素设置样式

问题描述

我正在尝试通过shinyBSbsTooltip()包的功能向闪亮应用程序中的不同操作按钮添加一些工具提示,并且我想仅修改特定工具提示框的宽度。为此,我可以在 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)

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

tags$head(tags$style(HTML("#textinput_ID::placeholder {color: #EEE1525;}")))

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

非常感谢你的帮助!

标签: htmlcssrshinyshinybs

解决方案


你可以用一个 id 包裹你的and actionButton。现在您可以通过它的 id 选择它,并且只在里面设置工具提示的样式。bsTooltipdivdiv

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)

推荐阅读