以下是我正在使用的代码。唯一的问题是我的桌子都是相同的颜色,这是我的第二个颜色代码(#ffff99)。如何保持两个表的背景不同。
<style>
table {
background-color:#eff8e5;
}
</style>
``` {r}
kable(df1)
```
<style>
table {
background-color:#ffff99;
}
</style>
``` {r}
kable(df2)
```
答案 0 :(得分:3)
HTML / CSS不会以您隐式假设的方式呈现。如果渲染遵循以下过程,您的代码将按预期工作:
- 设置:“表格为绿色”
- 输出绿表
- 设置:“表格为黄色”
- 输出黄表
但事实并非如此。实际发生的是:
- 设置:“所有表格都是绿色”
- 输出表1
- (表1为绿色)
- 设置:“所有表格都是黄色”
- 输出表2
- (表1 和表2为黄色)
作为解决方案,您可以使用两个不同的类:
<style>
.lightgreen {
background-color:#eff8e5;
}
.yellow {
background-color:#ffff99;
}
</style>
(最好,类名应该描述原因为什么要使用该类,而不是类目前的样子,但没有进一步的信息“lightgreen”和“yellow”是最好的我提出的名字。)
现在你需要告诉kable
这些表应该分配这些类。
选项1:
kable(df1, format = "html", table.attr = "class=\"lightgreen\"")
kable(df2, format = "html", table.attr = "class=\"yellow\"")
然而,这剥离了大多数(可能需要的)默认表格布局。
选项2:在该容器中的表和样式表周围添加容器。
<style>
.lightgreen table {
background-color:#eff8e5;
}
.yellow table {
background-color:#ffff99;
}
</style>
<div class = "lightgreen">
```{r}
library(knitr)
df1 <- data.frame(a=1:10, b=2:11)
kable(df1)
```
</div>
<div class = "yellow">
```{r}
df2 <- data.frame(a=1:10, b=2:11)
kable(df2)
```
</div>