R tableHTML add_css text-align 中心在 Shiny 中不工作

R tableHTML add_css text-align centre not working in Shiny

我正在尝试使用 R 中的 tableHTML 包在闪亮的应用程序中设置 table 的样式。

当我在 R 中使用 tableHTML() 函数时,它产生的正是我想要的。我使用 add_css_column 将列中的文本对齐到中心。但是,当我在 Shiny 应用程序中使用它时,headers 最终左对齐并且行居中对齐。有什么办法可以解决这个问题吗?

output$viewers_website_top <- renderUI({ 
  tableHTML(website_index, rownames = FALSE, widths=c(200,200)) %>%
    add_css_column(css = list("text-align", "center"), 
                   column_names = names(website_index)) 
})

不幸的是,这是 bootstrap 3 的常见问题。每当您使用 shiny 时,它都会加载 bootstrap 3 css (立即),这使得覆盖变得困难。

至于使用 add_css_header 的解决方案可能会解决这个问题。 add_css_header 会将 HTML table 的 th 标签更改为您喜欢的标签(而 add_css_header 会将 td 标签更改为 headers):

output$viewers_website_top <- renderUI({ 
  tableHTML(website_index, rownames = FALSE, widths=c(200,200)) %>%
    add_css_header(css = list("text-align", "center"), 
                   headers = 1:ncol(website_index)) 
})

您可以做的另一件事是使用 shiny::includeCSS 添加单独的 css 文件。有关如何使用 includeCSS 的更多信息 here and here

在css文件中你需要写:

.table_website_index th {
  text-align: center;
}

应该就可以了!

P.S。 table_website_index 是包分配给 table 的 class,您也可以使用 class 参数更改它。

P.S.2 我是开发人员 - 感谢您使用该软件包 :)