首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在reactable (r-package)上居中标题列?

如何在reactable (r-package)上居中标题列?
EN

Stack Overflow用户
提问于 2021-09-03 18:22:46
回答 1查看 377关注 0票数 2

嗨,谢谢你读我的文章

我正在使用r中的"reactable“包处理一些表,但我只想将每列的标题居中。例如:

代码语言:javascript
复制
library(reactable)
reactable(iris,
          defaultColDef = colDef(
            header = function(value) gsub(".", " ", value, fixed = TRUE),
            cell = function(value) format(value, nsmall = 1),
            align = "center",
            minWidth = 70,
            headerStyle = list(background = "#12a09a")
          ))

显然,选项colDef(align = "center")使整个列居中,但是否有仅使标题居中的选项?

EN

回答 1

Stack Overflow用户

发布于 2021-09-19 20:34:42

我假设您正在R markdown文档或闪亮的应用程序中使用这些表。在这两种情况下,您都可以覆盖css以左对齐表格文本,或者让默认表格将标题居中。

在第一种情况下,您只需添加此行.rt-align-center{text-align: left;}

在shiny中,您只需将其添加到自定义样式中,或者使用css标签将其内联添加,如下面的示例所示:

代码语言:javascript
复制
library(shiny)
library(reactable)


ui <- fluidPage(
    # inline style tag to define table row text alignment
    tags$style(HTML(".rt-align-center {text-align: left;}")),

    titlePanel("Iris react table"),

    sidebarLayout(
        sidebarPanel(
           helpText("Nothing to see here")
        ),
        mainPanel(
            reactableOutput("table")
        )

    )
)

server <- function(input, output) {

    output$table <- renderReactable({
    
        reactable(iris,
                  defaultColDef = colDef(
                      header = function(value) gsub(".", " ", value, fixed = TRUE),
                      cell = function(value) format(value, nsmall = 1),
                      align = "center",
                      minWidth = 70,
                      headerStyle = list(background = "#12a09a")
                  ))
    })
}

shinyApp(ui = ui, server = server)

如果您正在使用Rmarkdown文档,只需将其添加到样式标记中的html中,如下所示:

<style> .rt-align-center {text-align: left;} </style>

结果是:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69049193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档