css - R数据表行填充大小修改
问题描述
我有一个小的 R 闪亮应用 https://kormir.shinyapps.io/dt_test/
library(shiny)
library(DT)
ui <- fluidPage(
column(4,
br(),
br(),
dataTableOutput('dt1')
)
)
server <- function(input, output) {
output$dt1 <- renderDataTable({
datatable(mtcars[1:4,1:4])
})
}
shinyApp(ui = ui, server = server)
在使用 datatable 包创建动态表。我想减少内部填充,但通过 css 技能还不够好。
我需要删除那个黄色区域或使它非常非常小。例如,我找出了行的类别并试图将这些填充的大小强制为 0。
.odd {
background-color: red!important;
border-collapse: collapse!important;
padding: 0!important;
border : 0px !important;
}
这没用...
解决方案
编辑
我最初的解决方案没有考虑到会话期间对表格的交互式更改。DataTables 初始化时的以下 js 注入function(){$('tbody td').css({'padding': '0px'});}
将填充更改应用于表格的初始状态,但任何更改(例如排序和分页)都会导致表格恢复到其初始显示设置。
initComplete
在 DataTables 初始化时使用in 参数注入一些 javascript 怎么样Options
?
为此,您必须htmlwidgets
安装软件包才能使用该JS()
功能。JS()
将字符串视为 javascript 代码。
DT::datatable()
有一个options
对应Options
于 DataTables 的参数。options
接受 . 中的命名参数列表DataTables
Options
。
在options
中,提供带有initComplete
参数的命名列表。在那里,注入一些 js,htmlwidgets::JS()
js 回调将在 DataTables 初始化时执行。
DataTables 有一些默认样式选项,包括一个名为compact
. 以下是启用compact
样式选项的作用(引用自此处):
减少 DataTable 的默认样式使用的空白数量,增加屏幕上的信息密度
好的,下一步是将类添加compact
到 DOM 中的 DataTables 对象,如下所示:
重要的js部分是:
function(){$(this).addClass('compact');}
$(...)
是jQuery访问 DOM 中元素的语法。里面$(...)
是你想要选择的 DOM 元素的选择器。幸运的是,因为您是在 DataTables 事件中注入此 js 代码,所以您可以使用this
选择器来引用表格。下一个方法是addClass()
。它按照它所说的做:它向 DOM 中的选定对象添加一个类。您想将该类添加compact
到您的表中,然后 DataTables 将处理其余部分。
好的,代码如下:
library(shiny)
library(DT)
ui <- fluidPage(
column(4,
br(),
br(),
dataTableOutput('dt1')
)
)
server <- function(input, output) {
output$dt1 <- renderDataTable({
datatable(mtcars,
options = list(
initComplete = JS(
"function(){$(this).addClass('compact');}")
)
)
})
}
shinyApp(ui = ui, server = server, options = list(launch.browser=TRUE))
更改分页并按以下方式排序后cyl
:
compact
样式仍然适用。
推荐阅读
- javascript - 如何在一个范围内编写一些文本并通过使用 Selenium Python 3.7 按“ENTER”提交?
- javascript - REST API - 我了解响应缓存过程吗?(Node.js)
- python - RDD 分区问题
- angular - Angular Nativescript 路由导航给出错误
- webview - 在android 11(三星设备)的应用程序双重上运行时,Webview不会调用任何回调
- python - 什么是 x, y = func(x, y)
- list - Flutter Dart List - 如何检查列表是否包含对象
- aws-codebuild - 使用 Github 构建 AWS 代码 - 获取更改的文件
- javascript - 如何使用 svg 变形制作行走动画?
- amazon-web-services - 部署到 Docker Swarm 的应用程序未与 MongoDB 副本集连接