Отключить стили CSS для отдельных таблиц

#css #r #shiny

#css — файл #r #блестящий

Вопрос:

Проблема: В настоящее время я использую тему flatly в Shiny. Однако мне не нравится отображение таблиц. Есть ли способ легко получить тему по умолчанию только для таблиц (см. Также скриншоты)?

Текущая ситуация:

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

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

 library("shiny")
library("formattable")

shinyApp(
  ui = fluidPage(
    theme = shinythemes::shinytheme("flatly"),
    sidebarPanel(
      formattableOutput("table")
    ),
    mainPanel(
    )
  ),
  server = function(input, output) {
    test.table <- data.frame(lapply(1:8, function(x) {1:10}))
    
    output$table <- renderFormattable({formattable(test.table, list())})
  }
)
  

Ответ №1:

Не уверен, что вы подразумеваете под простым способом.(; Но для достижения желаемого результата вы могли бы добавить пользовательский css, который перезаписывает правила для оформления таблиц значениями по умолчанию.

Чтобы сделать пример немного более интересным, я поместил вашу таблицу в живой пример выбора темы из здесь и использовал mtcars в качестве примера набора данных:

 library("shiny")
library("formattable")

shinyApp(
  ui = fluidPage(
    shinythemes::themeSelector(),  # <--- Add this somewhere in the UI
    tags$style(HTML("
      .table > tbody > tr > td,
      .table > tbody > tr > th,
      .table > tfoot > tr > td,
      .table > tfoot > tr > th,
      .table > thead > tr > td,
      .table > thead > tr > th {
        font-family: 'Helvetica Neue', Helvetica,Arial,sans-serif;
        font-size: 14px;
        line-height: 1.42857143;
        color: #333;
        border-bottom: 2px solid #ecf0f1;
        border-collapse: collapse;
        border-spacing: 0;
        padding: 8px;
        margin-bottom: 20px;
        background-color: transparent;
      }
    ")),
    sidebarPanel(
      textInput("txt", "Text input:", "text here"),
      sliderInput("slider", "Slider input:", 1, 100, 30),
      actionButton("action", "Button"),
      actionButton("action2", "Button2", class = "btn-primary")
    ),
    mainPanel(
      tabsetPanel(
        tabPanel("Tab 1"),
        tabPanel("Tab 2")
      ),
      formattableOutput("table")
    )
  ),
  server = function(input, output) {
    test.table <- mtcars
    
    output$table <- renderFormattable({formattable(test.table, list())})
  }
)
  

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