r knitr kable 填充不适用于格式 = "html"

r knitr kable padding not working with format = "html"

我正在尝试将填充添加到 table 我正在创建的 RMarkdown 文件中,该文件将生成 pdf 和 html flexdashboard。我知道有很多 functions/packages 我可以使用(pander、xtable、DT 等),但我更愿意使用 knitr 包中的 kable 函数。

我遇到的麻烦是填充参数似乎不起作用。如果您能帮我解决这个问题,我将不胜感激,而无需在我的文档中添加自定义 CSS。

例如,我尝试 运行 将填充设置为 0、10、20 的代码,但 table 在 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,我的session信息如下。

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

table.attr='cellpadding="20px"' 选项对我不起作用。使用 CSS 样式并将 class 添加到带有 table.attr='class="myTable"' 的 table 会导致所有 table 具有所需的填充 属性(即使只有一个 table 携带新的 class).

如果我只想修改一个单曲table我通常会选择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 样式相同的方式修改 table。

<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>

这里我把classmyTable加到我要修改的table上。然后我执行一些 JavaScript (见评论)。 您可以以相同的方式将任何其他 CSS 属性 添加到 table 元素(或 table 本身 $('table.myTable').css(...))(例如 $('table.myTable td').css('background-color','red');