#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)