Измените цвет кнопки shinyalert » OK » (confirmButtonCol) с помощью таблицы стилей css

#css #r #shiny #shinyalert

Вопрос:

Я использовал className = 'alert' атрибут, shinyalert() чтобы отформатировать свои shinyalerts в таблице стилей CSS. Я могу изменить текст и цвет фона всего модального (например tags$style('.alert {background-color: blue}') ), поэтому я знаю, что настройка имени класса работает. Я пытаюсь изменить цвет кнопки «ОК», но я не знаю, какое свойство использовать. Я знаю , что могу настроить цвет кнопки, используя confirmButtonCol вызов shinyalert() , но я хотел бы сделать это с помощью таблицы стилей, если это возможно.

Мой код будет выглядеть так:

 ui <- fluidPage(
  tags$style('.alert {*SOME_PROPERTY*: #2874A6;}'),
  actionButton('showalert', 'Show Alert'),
  shinyalert::useShinyalert()
)
server <- function(input, output, session) {
  observeEvent(input$showalert, {
     shinyalert::shinyalert(title = 'Alert', className = 'alert')
    })
}
shinyApp(ui = ui, server = server)
 

Мне интересно, чем я могу заменить SOME_PROPERTY, если что-нибудь.

Заранее благодарю вас!

Ответ №1:

Таким OK образом, кнопка на самом деле имеет имя класса confirm . Когда вы выбираете его с помощью CSS, просто добавьте его после имени вашего класса, например .alert .confirm {...} . Кроме того, оказывается, что цвет кнопки использует встроенный стиль, который имеет наивысший приоритет во всех правилах CSS, поэтому нам нужно принудительно перезаписать его !important .

код

 library(shiny)
ui <- fluidPage(
    tags$style('.alert .confirm {background-color: #2874A6 !important;}'),
    actionButton('showalert', 'Show Alert'),
    shinyalert::useShinyalert()
)
server <- function(input, output, session) {
    observeEvent(input$showalert, {
        shinyalert::shinyalert(title = 'Alert', className = 'alert')
    })
}
shinyApp(ui = ui, server = server)

 

введите описание изображения здесь