R DT中数字输入的垂直对齐

R DT中数字输入的垂直对齐,r,shiny,dt,R,Shiny,Dt,我一直在尝试垂直对齐dt呈现的数据帧内的元素,为此,我在datatable函数的选项内使用了className=“dt center”参数,虽然这适用于我的数据帧的大多数元素,但它不会将数字输入集中在数据帧内 我尝试将“垂直对齐”=“中间”css参数与formatStyle函数一起使用,但这也不会改变数值输入的对齐方式 有没有一种方法可以像文本的其余部分一样对齐这些数字输入 编辑:添加所需对齐的屏幕截图 library(shiny) shinyInput <- function(FUN,

我一直在尝试垂直对齐dt呈现的数据帧内的元素,为此,我在
datatable
函数的选项内使用了
className=“dt center”
参数,虽然这适用于我的数据帧的大多数元素,但它不会将数字输入集中在数据帧内

我尝试将
“垂直对齐”=“中间”
css参数与
formatStyle
函数一起使用,但这也不会改变数值输入的对齐方式

有没有一种方法可以像文本的其余部分一样对齐这些数字输入

编辑:添加所需对齐的屏幕截图

library(shiny)

shinyInput <- function(FUN, len, id, ...) {
  inputs <- character(len)
  for (i in seq_len(len)) {
    inputs[i] <- as.character(FUN(paste0(id, i), ...))
  }
  inputs
}

df <- iris
df$num <- shinyInput(numericInput, nrow(df), "num_", label = NULL, value=NULL)

ui <- dashboardBody(box(fluidPage(DT::dataTableOutput('DTdf'))))

server <- function(input, output){
  dfDT <- reactive({df})
  
  output$DTdf <- DT::renderDT({
    datatable(dfDT(),
              escape=F,
              editable="all",
              options = list(
                columnDefs = list(list(className = "dt-center", targets="_all")),
                preDrawCallback = JS('function() { Shiny.unbindAll(this.api().table().node()); }'),
                drawCallback = JS('function() { Shiny.bindAll(this.api().table().node()); } '))) %>%
      formatStyle(c(6), "vertical-align" = "middle")
    })
}

shinyApp(ui=ui, server=server)
库(闪亮)

shinyInput由于底部边距,数字输入被上移。您可以借助CSS将其删除:

CSS <- HTML("td .form-group {margin-bottom: 0;}")

ui <- dashboardBody(
  tags$head(tags$style(CSS)),
  box(
    fluidPage(
      DT::dataTableOutput('DTdf')
    )
  )
)

CSS
dt中心
水平中心。你是说水平居中?我想水平和垂直居中数据表中的所有内容,我的文本是垂直居中的,但数字输入不是,我正在寻找一种方法来垂直居中。对于水平居中,我会在数字输入中使用
width=“100%”
,以便输入适合单元格。现在我将运行您的代码,看看您对垂直居中的含义。我在帖子中添加了一张图片,以显示数字输入的预期对齐方式。