将css样式应用于单个DT数据表

iyzzxitl  于 2023-02-14  发布在  其他
关注(0)|答案(1)|浏览(142)

我在我的应用程序中有一对DT数据表,我想控制其中一个表的宽度(通过固定宽度),同时让另一个表的宽度保持动态。
在尝试了许多固定列宽的方法之后,似乎最适合我的应用程序的方法是使用样式table.dataTable {table-layout: fixed;},但是这会影响两个表。
如何将此样式的效果限制在第二个表中?

data(starwars)
starwars = starwars[1:5,1:4]

ui = fluidPage(
  DT::dataTableOutput("variable_width"),
  tags$style(HTML("table.dataTable {table-layout: fixed;}")),
  DT::dataTableOutput("fixed_width")
)

server = function(input, output, session){
  output$variable_width = DT::renderDataTable({ starwars }, options = list(dom = "t"))
  output$fixed_width = DT::renderDataTable({ starwars }, options = list(dom = "t"))
}

shinyApp(ui, server)

通过搜索,似乎可以通过div执行此操作:您可以将样式限制为仅当前div。但是,我无法使此工作。

vfh0ocws

vfh0ocws1#

您需要在CSS中添加什么是parents div,如下所示:

tags$style(HTML("#fixed_width > .dataTables_wrapper > table.dataTable {table-layout: fixed;}")),

#fixed_width是第二个表的outputId(也是div id)。

相关问题