【问题标题】:how to colour different Rmarkdown kable tables in different colour如何用不同的颜色为不同的 Rmarkdown kable 表着色
【发布时间】:2016-04-03 05:30:25
【问题描述】:

下面是我正在使用的代码。唯一的问题是我的两个表都是相同的颜色,这是我的第二个颜色代码(#ffff99)。如何保持两个表的背景不同。

<style>
table {
background-color:#eff8e5;
}
</style>
``` {r}
kable(df1)
```

<style>
table {
background-color:#ffff99;
}
</style>
``` {r}
kable(df2)
```

【问题讨论】:

    标签: css r knitr r-markdown


    【解决方案1】:

    HTML/CSS 不会按照您隐式假设的方式呈现。如果渲染遵循以下过程,您的代码将按预期工作:

    • 设置:“桌子是绿色的”
    • 输出绿色表格
    • 设置:“表格是黄色的”
    • 输出黄色表格

    但事实并非如此。实际发生的是:

    • 设置:“所有表格都是绿色的”
    • 输出表1
    • (表1为绿色)
    • 设置:“所有表格都是黄色的”
    • 输出表2
    • (表1表2为黄色)

    作为一种解决方案,您可以使用两个不同的类:

    <style>
    .lightgreen {
      background-color:#eff8e5;
    }
    
    .yellow {
      background-color:#ffff99;
    }
    </style>
    

    (最好,类名应该描述使用该类的原因,而不是该类当前的外观,但如果没有更多信息,最好使用“浅绿色”和“黄色”我想出的名字)。

    现在您需要告诉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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-29
      • 1970-01-01
      • 1970-01-01
      • 2018-10-12
      • 2022-01-24
      • 2020-07-02
      • 2021-01-02
      • 1970-01-01
      相关资源
      最近更新 更多