搜尋

首頁  >  問答  >  主體

為連續表格中的 kable 標題實現不同的自訂 CSS(字體顏色)

<p>我想要一個藍色標題,然後一個紅色標題。我<code>cat</code> 兩個HTML <code><style>...</style></code> 部分,第一個藍色第二個紅色,根據這個答案,但我都得到紅色。 </p> <p>如何取得藍色標題與紅色標題? </p> <pre class="brush:php;toolbar:false;">--- output: html_document --- ```{r setup, include=FALSE} knitr::opts_chunk$set(echo=FALSE) ``` ```{r results="asis"} cat(" <style> caption { color: blue; } </style> ") knitr::kable(head(iris), format="html", digits=4, row.names=FALSE, caption='Caption blue', escape=TRUE)|> kableExtra::kable_styling(font_size=14) |> kableExtra::kable_paper(c('hover', 'condensed', 'responsive'), full_width=T) |> kableExtra::scroll_box(width="100%", height="200px") ``` ```{r results="asis"} cat(" <style> caption { color: red; } </style> ") knitr::kable(head(iris), format="html", digits=4, row.names=FALSE, caption='Caption red', escape=TRUE) |> kableExtra::kable_styling(font_size=14) |> kableExtra::kable_paper(c('hover', 'condensed', 'responsive'), full_width=T) |> kableExtra::scroll_box(width="100%", height="200px") ```</pre>
P粉563831052P粉563831052452 天前556

全部回覆(2)我來回復

  • P粉865900994

    P粉8659009942023-09-02 14:35:18

    您也可以為每個表提供一個特殊的 HTML 類,然後將所有樣式收集在 css 區塊中,而不是在每個區塊中指定 CSS:

    ---
    output: html_document
    ---
    
    ```{r setup, include=FALSE}
    knitr::opts_chunk$set(echo=FALSE)
    ```
    
    ```{css}
    .mytable1 > caption {
        color: blue;
    }
    .mytable2 > caption {
        color: red;
    }
    ```
    
    ```{r results="asis"}
    knitr::kable(head(iris), 
                 format="html",
                 digits=4,
                 row.names=FALSE,
                 caption='Caption blue',
                 escape=TRUE)|>
      kableExtra::kable_styling(font_size=14, htmltable_class = "mytable1") |>
      kableExtra::kable_paper(c('hover', 'condensed', 'responsive'), full_width=T) |>
      kableExtra::scroll_box(width="100%", height="200px") 
    ```
    
    
    ```{r results="asis"}
    knitr::kable(head(iris), 
                 format="html",
                 digits=4,
                 row.names=FALSE,
                 caption='Caption red',
                 escape=TRUE) |>
      kableExtra::kable_styling(font_size=14, htmltable_class = "mytable2") |>
      kableExtra::kable_paper(c('hover', 'condensed', 'responsive'), full_width=T) |>
      kableExtra::scroll_box(width="100%", height="200px")
    ```

    或者,我們可以在區塊之外插入內嵌 CSS。

    <style>
    .mytable1 > caption {
      color: blue;
    }
    .mytable2 > caption {
      color: red;
    }
    </style>

    回覆
    0
  • P粉156983446

    P粉1569834462023-09-02 00:44:29

    因為第二個CSS覆蓋了第一個CSS。

    最好這樣做:

    cat("
    <style>
    .blue-caption {
          color: blue;
        }
    
    .red-caption {
          color: red;
        }
    </style>
    ")

    然後這樣使用:

    caption='<span class=\"blue-caption\">Caption blue</span>',
    caption='<span class=\"red-caption\">Caption red</span>',

    有效嗎?

    問候, 諾埃爾

    回覆
    0
  • 取消回覆