如何在ioslides演示文稿中适配DT包生成的交互式表格
问题解决方法
问题1:幻灯片背景变灰
- 原因:ioslides默认规则下,当幻灯片内容高度超出预设容器高度时,会自动切换为灰色背景,同时DT表格的默认样式和ioslides样式存在冲突,叠加触发了该问题。
- 解决方法:在Rmd文件的YAML头下方、正文内容前插入自定义CSS样式,强制幻灯片背景为白色:
<style> slides > slide { background: white !important; } .datatables { max-height: 500px; overflow-y: auto; overflow-x: auto; } </style>
问题2:翻页后表格超出幻灯片范围
- 原因:DT表格默认没有设置固定的容器高度,分页后内容高度变化时容易超出幻灯片可视区域,没有自动滚动规则的话就会显示异常。
- 解决方法:修改datatable的调用参数,配合上方CSS限制表格容器最大尺寸即可,修改后的表格代码如下:
library(DT) datatable( head(mtcars, n = nrow(mtcars)), options = list( pageLength = 5, scrollY = "400px", scrollX = TRUE, autoWidth = FALSE ) )
完整可运行代码
--- title: "Habits" author: "John Doe" date: "March 22, 2005" output: ioslides_presentation: widescreen: true --- <style> slides > slide { background: white !important; } .datatables { max-height: 500px; overflow-y: auto; overflow-x: auto; } </style> # In the morning ## Getting up - Turn off alarm - Get out of bed # TABLE ```{r} library(DT) datatable( head(mtcars, n = nrow(mtcars)), options = list( pageLength = 5, scrollY = "400px", scrollX = TRUE, autoWidth = FALSE ) )
## 相关学习资源 - 查看R Markdown演示文稿官方指南:在R控制台运行`vignette("rmarkdown", package = "rmarkdown")`即可调阅 - DT包在R Markdown中的用法:运行`vignette("DT", package = "DT")`查看官方文档 内容的提问来源于stack exchange,提问作者emr2
相关产品推荐
相关产品推荐

