提问人:Ben_89 提问时间:10/21/2023 更新时间:10/21/2023 访问量:44
如何使用 CSS 在 kableExtra 中将 cell_spec() 中的文本居中?
How to center text from cell_spec() in kableExtra using CSS?
问:
我得到了一个解决方法,使用包中的参数,使我能够填充表格的整个单元格,而不仅仅是文本。但是,尽管在调用中进行了设置,但输出仍会导致列中的文本不居中。extra_css =
cell_spec()
kableExtra
align = c("l", "c")
kbl()
val
我真的希望让文本中心与 R Markdown 报告对齐,所以如果有人可以为此提出解决方法,也许使用 CSS,那就太好了!谢谢。
library(kableExtra)
set.seed(123)
name <- paste("Name", LETTERS)
val <- rnorm(26, 100, 50)
d <- data.frame(name, val)
d$val <- cell_spec(d$val,
background = dplyr::case_when(
d$val > mean(d$val) + sd(d$val) ~ "#DBEBF6",
d$val < mean(d$val) - sd(d$val) ~ "#FEE7DA",
.default = "transparent"
),
extra_css = "margin: -8px; padding: 8px; display: flex;",
background_as_tile = FALSE
)
kbl(d, escape = FALSE, align = c("l", "c")) %>%
kable_styling()
答:
1赞
RKeithL
10/21/2023
#1
library(kableExtra)
set.seed(123)
name <- paste("Name", LETTERS)
val <- rnorm(26, 100, 50)
d <- data.frame(name, val)
d$val <- cell_spec(d$val,
background = dplyr::case_when(
d$val > mean(d$val) + sd(d$val) ~ "#DBEBF6",
d$val < mean(d$val) - sd(d$val) ~ "#FEE7DA",
.default = "white"
),
extra_css = "margin: -8px; padding: 8px; display: flex;",
background_as_tile = FALSE
)
kbl(d, escape = FALSE, align = c("l", "c")) %>%
kable_styling(full_width = F)
对于 HTML 输出,您可以通过在 中关闭来实现此目的。full_width
kable_styling()
这里有一些有用的东西:https://cran.r-project.org/web/packages/kableExtra/vignettes/awesome_table_in_html.html
评论
0赞
Ben_89
10/21/2023
谢谢,@RKeithL。的列标题以我的代码居中,但不是该列中的行/值。我希望这些以我的代码不产生的居中。val
0赞
RKeithL
10/21/2023
老实说,@Ben_89试图提供帮助,但我发布的图像似乎确实显示了居中标题和列的居中值。我应该补充一点,我发布的图片是从 R markdown 到 PDF。val
0赞
Ben_89
10/21/2023
我很感激,@RKeithL!也许我的代码没有居中的原因是我正在尝试编织到 HTML 文档。这可能是我遇到问题的可行原因吗?
1赞
RKeithL
10/21/2023
更新了答案。干杯!
0赞
RKeithL
10/23/2023
只是签到,@Ben_89——调整full_width对你有用吗?
评论