我正在尝试将填充添加到我在RMarkdown文件中创建的表中,该文件将生成pdf和html flexdashboard。我知道我可以使用许多函数/包(pander,xtable,DT等),但我更喜欢使用knitr包中的kable函数。
我遇到的麻烦是padding参数似乎不起作用。我很感激任何帮助解决这个问题,而无需在我的文档中添加自定义CSS。
举个例子,我试图运行代码,填充设置为0,10,20,但这些表在html文件中看起来都相同。
knitr::kable(head(cars), format = "html", padding = 0)
knitr::kable(head(cars), format = "html", padding = 10)
knitr::kable(head(cars), format = "html", padding = 20)
我正在使用knitr_1.14和rmarkdown_1.0,我的会话信息如下。
R version 3.3.0 (2016-05-03)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
答案 0 :(得分:4)
选项table.attr='cellpadding="20px"'
对我不起作用。使用CSS样式并使用table.attr='class="myTable"'
向表中添加类会导致所有表具有所需的填充属性(即使只有一个表包含新类)。
如果我只想修改一个表,我通常会使用jQuery:
---
title: "Table Cell Padding"
output: html_document
---
```{r}
knitr::kable(head(cars), format = "html")
```
```{r}
knitr::kable(head(cars), format = "html", table.attr='class="myTable"')
```
<style>
.myTable td {
padding: 40px;
}
</style>
另一种选择是使用jQuery编辑单个元素。以下示例以与上述CSS样式相同的方式修改表。
<script type="text/javascript">
// When the document is fully loaded...
$(document).ready(function() {
// ... select the cells of the table that has the class 'myTable'
// and add the attribute 'padding' with value '20px' to each cell
$('table.myTable td').css('padding','20px');
});
</script>
这里我将类myTable
添加到我想要修改的表中。然后我执行一些JavaScript(参见注释)。
您可以以相同的方式向表元素(或表本身$('table.myTable').css(...)
)添加任何其他CSS属性(例如$('table.myTable td').css('background-color','red');
)