在R DataTables中更改字体大小(DT)

a0x5cqrl  于 2023-09-27  发布在  其他
关注(0)|答案(4)|浏览(187)

一直在尝试更改DT生成的表格中所有文本的字体大小。但是,我只能弄清楚如何使用formatStyle(names(datCalc), fontSize = '12px')更改记录的大小。列标题和按钮的文本大小相同。在RStudio中使用R Markdown。

ddarikpa

ddarikpa1#

我觉得你差不多到了。我通过明确告诉DT::formatStyle()我需要哪些列来解决这个问题。我首先尝试使用names()colnames()方法,就像您所做的那样。但由于某种原因,它没有工作:

iris %>%
  DT::datatable() %>%
  DT::formatStyle(columns = colnames(.), fontSize = '50%')

然而,我们知道iris数据集有5列,所以我只是这样做:

iris %>%
  DT::datatable() %>%
  DT::formatStyle(columns = c(1, 2, 3, 4, 5), fontSize = '50%')

在本例中,我使用font-size = 50%,但您也可以像以前那样指定font-size = 12pt。您还可以为columns参数提供像c(T, F, F, F, T)这样的逻辑向量,格式将应用于您声明了TRUE的那些列。

2o7dmzc5

2o7dmzc52#

通过JavaScript表头调用添加CSS似乎可以做到这一点(即“this.API().table().header()”)。

datatable(..., options=list(
  initComplete = JS(
        "function(settings, json) {",
        "$(this.api().table().header()).css({'font-size': '50%'});",
        "}")))
  )

引用:第4.3节@https://rstudio.github.io/DT/options.html

nzk0hqpo

nzk0hqpo3#

能够通过使用formatStyle更改JS表格和列内容字体大小的CSS来更改页眉和页脚,如下所示。但是,页眉和页脚的字体大小保持不变。我想改变页眉/页脚/正文(整个字体的表)一举。这可能吗?

datatable(head(iris, 20), options = list(
  initComplete = JS(
    "function(settings, json) {",
    "$(this.api().table().header()).css({'font-size': '5px', 'background-color': '#c2d1f0', 'color': '#fff'});",
    "}"))) %>%  formatStyle(columns = colnames(.$x$data), `font-size` = '12px')

尝试使用以下命令更新列的CSS,但未成功

"$(this.api().columns().data()).css({'font-size': '5px'});"

"$(this.api().table().footer()).css({'font-size': '10px});"

"$(this.api().tables().body()).css({'font-size': '10px'});"
332nm8kg

332nm8kg4#

基于Antex和sabeepa给出的答案。如果您想更改所有内容的字体大小,包括表本身之外的DT组件,请使用table().container()。因此,代码看起来像这样:

font.size <- "10pt"

df %>% 
   DT::datatable(
     options=list(
       initComplete = htmlwidgets::JS(
          "function(settings, json) {",
          paste0("$(this.api().table().container()).css({'font-size': '", font.size, "'});"),
          "}")
       ) 
     )

相关问题