rmdformat:更改默认 table 滚动框
rmdformat: change default table scroll box
上下文
rmdformats
软件包为 Rmds 提供了一些很酷的默认主题。
我正在使用 downcute
主题。
可重现的例子
但是,当我在 html 文档中绘制 table 时,主题会自动设置一些默认值,我不知道如何编辑。
---
title: "Test"
output: rmdformats::downcute
---
```{r, echo=FALSE, warning=FALSE, message=FALSE}
library(dplyr)
library(kableExtra)
mtcars %>%
bind_cols(mtcars) %>%
kbl() %>%
scroll_box(width = "100%", height = "400px")
```
它是这样的(滚动到底部以查看第二个水平滚动条):
问题
此输出有两个问题:
scroll_box
函数添加了一层新的滚动条,而不是替换包自动设置的现有滚动条。因此,您最终会得到两个水平滚动条(第二个似乎已关闭)
- 列的标签未固定在顶部。
预期结果
我想获得以下输出。为了创建预期的结果,我切换到 html_document
主题,但我想使用 rmdformats
主题!
---
title: "Test"
output: html_document
---
```{r, echo=FALSE, warning=FALSE, message=FALSE}
library(dplyr)
library(kableExtra)
mtcars %>%
bind_cols(mtcars) %>%
kbl() %>%
kable_styling() %>%
scroll_box(width = "100%", height = "400px")
```
有什么帮助吗?也许 CSS 解决方案?
额外信息
> sessionInfo()
R version 4.1.3 (2022-03-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19044)
Matrix products: default
locale:
[1] LC_COLLATE=Italian_Italy.1252 LC_CTYPE=Italian_Italy.1252 LC_MONETARY=Italian_Italy.1252 LC_NUMERIC=C
[5] LC_TIME=Italian_Italy.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] kableExtra_1.3.4 dplyr_1.0.9
loaded via a namespace (and not attached):
[1] bslib_0.3.1 jquerylib_0.1.4 highr_0.9 pillar_1.7.0 compiler_4.1.3 rmdformats_1.0.4 tools_4.1.3
[8] digest_0.6.29 jsonlite_1.8.0 viridisLite_0.4.0 evaluate_0.15 lifecycle_1.0.1 tibble_3.1.6 pkgconfig_2.0.3
[15] rlang_1.0.2 DBI_1.1.2 cli_3.3.0 rstudioapi_0.13 yaml_2.3.5 xfun_0.30 fastmap_1.1.0
[22] httr_1.4.3 stringr_1.4.0 knitr_1.39 xml2_1.3.3 sass_0.4.1 systemfonts_1.0.4 generics_0.1.2
[29] vctrs_0.4.1 webshot_0.5.3 tidyselect_1.1.2 svglite_2.1.0 glue_1.6.2 R6_2.5.1 fansi_1.0.3
[36] rmarkdown_2.14 bookdown_0.26 purrr_0.3.4 magrittr_2.0.3 scales_1.2.0 ellipsis_0.3.2 htmltools_0.5.2
[43] assertthat_0.2.1 rvest_1.0.2 colorspace_2.0-3 utf8_1.2.2 stringi_1.7.6 munsell_0.5.0 crayon_1.5.1
rmdformats 版本 1.0.4
当我运行你的代码:
---
title: "Test"
output: rmdformats::downcute
---
```{r, echo=FALSE, warning=FALSE, message=FALSE}
library(dplyr)
library(kableExtra)
mtcars %>%
bind_cols(mtcars) %>%
kbl() %>%
scroll_box(width = "100%", height = "400px")
```
这是输出:
只有一个水平和垂直滚动条。
会话信息
R version 4.1.0 (2021-05-18)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS 12.4
Matrix products: default
LAPACK: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRlapack.dylib
locale:
[1] nl_NL.UTF-8/nl_NL.UTF-8/nl_NL.UTF-8/C/nl_NL.UTF-8/nl_NL.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] kableExtra_1.3.4 dplyr_1.0.9 rmdformats_1.0.4
loaded via a namespace (and not attached):
[1] pillar_1.7.0 compiler_4.1.0 tools_4.1.0 digest_0.6.29 viridisLite_0.4.0
[6] evaluate_0.15 lifecycle_1.0.1 tibble_3.1.7 pkgconfig_2.0.3 rlang_1.0.2
[11] cli_3.3.0 DBI_1.1.2 rstudioapi_0.13 yaml_2.3.5 xfun_0.31
[16] fastmap_1.1.0 httr_1.4.3 stringr_1.4.0 knitr_1.39 xml2_1.3.3
[21] systemfonts_1.0.4 generics_0.1.2 vctrs_0.4.1 webshot_0.5.2 tidyselect_1.1.2
[26] svglite_2.1.0 glue_1.6.2 R6_2.5.1 fansi_1.0.3 rmarkdown_2.14
[31] bookdown_0.25 purrr_0.3.4 magrittr_2.0.3 scales_1.2.0 ellipsis_0.3.2
[36] htmltools_0.5.2 rsconnect_0.8.25 assertthat_0.2.1 rvest_1.0.2 colorspace_2.0-3
[41] utf8_1.2.2 stringi_1.7.6 munsell_0.5.0 crayon_1.5.1
rmdformats 版本 1.0.3
会话信息
R version 4.1.0 (2021-05-18)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS 12.4
Matrix products: default
LAPACK: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRlapack.dylib
locale:
[1] nl_NL.UTF-8/nl_NL.UTF-8/nl_NL.UTF-8/C/nl_NL.UTF-8/nl_NL.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] kableExtra_1.3.4 dplyr_1.0.9 rmdformats_1.0.3 devtools_2.4.3 usethis_2.1.5
loaded via a namespace (and not attached):
[1] tidyselect_1.1.2 xfun_0.31 remotes_2.4.2 purrr_0.3.4 colorspace_2.0-3
[6] vctrs_0.4.1 generics_0.1.2 testthat_3.1.2 viridisLite_0.4.0 htmltools_0.5.2
[11] utf8_1.2.2 rlang_1.0.2 pkgbuild_1.3.1 pillar_1.7.0 glue_1.6.2
[16] withr_2.5.0 DBI_1.1.2 sessioninfo_1.2.2 lifecycle_1.0.1 stringr_1.4.0
[21] munsell_0.5.0 rvest_1.0.2 evaluate_0.15 memoise_2.0.1 knitr_1.39
[26] callr_3.7.0 fastmap_1.1.0 ps_1.7.0 fansi_1.0.3 scales_1.2.0
[31] cachem_1.0.6 desc_1.4.1 pkgload_1.2.4 webshot_0.5.2 fs_1.5.2
[36] systemfonts_1.0.4 brio_1.1.3 digest_0.6.29 stringi_1.7.6 bookdown_0.26
[41] processx_3.5.3 rprojroot_2.0.2 cli_3.3.0 tools_4.1.0 magrittr_2.0.3
[46] tibble_3.1.7 crayon_1.5.1 pkgconfig_2.0.3 ellipsis_0.3.2 xml2_1.3.3
[51] prettyunits_1.1.1 assertthat_0.2.1 rmarkdown_2.14 svglite_2.1.0 httr_1.4.3
[56] rstudioapi_0.13 R6_2.5.1 compiler_4.1.0
您必须控制 table 和 table 包装器元素。如果这不是您要找的,请告诉我。
---
title: "Test"
output: rmdformats::downcute
---
<style>
table, .table-wrapper {
height: 400px;
width: 100%;
overflow: auto;
}
</style>
```{r, echo=FALSE, warning=FALSE, message=FALSE}
library(dplyr)
library(kableExtra)
mtcars %>%
bind_cols(mtcars) %>%
kbl() #%>%
# scroll_box(width = "100%", height = "400px")
```
我不知道您打算如何使用另一个 space,但此模板的边距令人讨厌。如果你想最大限度地利用space,那么将<style>
标签之间的内容更新为如下内容:
<style>
table, .table-wrapper {
height: 400px;
width: 100%;
overflow: auto;
}
.layout-narrow .Wrap {
margin: unset;
max-width: unset;
}
</style>
请注意,现在没有水平滚动条,因为显示了 table 的整个宽度。
更新:添加粘性 header 行
要使顶行固定,请将 <styles>
标记中的内容更改为以下内容。 (您仍然可以向其中添加 .layout-narrow .Wrap
样式。)
请注意,这不是 table, .table-wrapper
。 table
不再在这些标签中。
<style>
.table-wrapper {
overflow: auto;
height: 400px;
width: 100%;
}
thead, th {
top: 0;
position: sticky;
z-index: 2;
}
</style>
上下文
rmdformats
软件包为 Rmds 提供了一些很酷的默认主题。
我正在使用 downcute
主题。
可重现的例子
但是,当我在 html 文档中绘制 table 时,主题会自动设置一些默认值,我不知道如何编辑。
---
title: "Test"
output: rmdformats::downcute
---
```{r, echo=FALSE, warning=FALSE, message=FALSE}
library(dplyr)
library(kableExtra)
mtcars %>%
bind_cols(mtcars) %>%
kbl() %>%
scroll_box(width = "100%", height = "400px")
```
它是这样的(滚动到底部以查看第二个水平滚动条):
问题
此输出有两个问题:
scroll_box
函数添加了一层新的滚动条,而不是替换包自动设置的现有滚动条。因此,您最终会得到两个水平滚动条(第二个似乎已关闭)- 列的标签未固定在顶部。
预期结果
我想获得以下输出。为了创建预期的结果,我切换到 html_document
主题,但我想使用 rmdformats
主题!
---
title: "Test"
output: html_document
---
```{r, echo=FALSE, warning=FALSE, message=FALSE}
library(dplyr)
library(kableExtra)
mtcars %>%
bind_cols(mtcars) %>%
kbl() %>%
kable_styling() %>%
scroll_box(width = "100%", height = "400px")
```
有什么帮助吗?也许 CSS 解决方案?
额外信息
> sessionInfo()
R version 4.1.3 (2022-03-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19044)
Matrix products: default
locale:
[1] LC_COLLATE=Italian_Italy.1252 LC_CTYPE=Italian_Italy.1252 LC_MONETARY=Italian_Italy.1252 LC_NUMERIC=C
[5] LC_TIME=Italian_Italy.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] kableExtra_1.3.4 dplyr_1.0.9
loaded via a namespace (and not attached):
[1] bslib_0.3.1 jquerylib_0.1.4 highr_0.9 pillar_1.7.0 compiler_4.1.3 rmdformats_1.0.4 tools_4.1.3
[8] digest_0.6.29 jsonlite_1.8.0 viridisLite_0.4.0 evaluate_0.15 lifecycle_1.0.1 tibble_3.1.6 pkgconfig_2.0.3
[15] rlang_1.0.2 DBI_1.1.2 cli_3.3.0 rstudioapi_0.13 yaml_2.3.5 xfun_0.30 fastmap_1.1.0
[22] httr_1.4.3 stringr_1.4.0 knitr_1.39 xml2_1.3.3 sass_0.4.1 systemfonts_1.0.4 generics_0.1.2
[29] vctrs_0.4.1 webshot_0.5.3 tidyselect_1.1.2 svglite_2.1.0 glue_1.6.2 R6_2.5.1 fansi_1.0.3
[36] rmarkdown_2.14 bookdown_0.26 purrr_0.3.4 magrittr_2.0.3 scales_1.2.0 ellipsis_0.3.2 htmltools_0.5.2
[43] assertthat_0.2.1 rvest_1.0.2 colorspace_2.0-3 utf8_1.2.2 stringi_1.7.6 munsell_0.5.0 crayon_1.5.1
rmdformats 版本 1.0.4
当我运行你的代码:
---
title: "Test"
output: rmdformats::downcute
---
```{r, echo=FALSE, warning=FALSE, message=FALSE}
library(dplyr)
library(kableExtra)
mtcars %>%
bind_cols(mtcars) %>%
kbl() %>%
scroll_box(width = "100%", height = "400px")
```
这是输出:
只有一个水平和垂直滚动条。
会话信息
R version 4.1.0 (2021-05-18)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS 12.4
Matrix products: default
LAPACK: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRlapack.dylib
locale:
[1] nl_NL.UTF-8/nl_NL.UTF-8/nl_NL.UTF-8/C/nl_NL.UTF-8/nl_NL.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] kableExtra_1.3.4 dplyr_1.0.9 rmdformats_1.0.4
loaded via a namespace (and not attached):
[1] pillar_1.7.0 compiler_4.1.0 tools_4.1.0 digest_0.6.29 viridisLite_0.4.0
[6] evaluate_0.15 lifecycle_1.0.1 tibble_3.1.7 pkgconfig_2.0.3 rlang_1.0.2
[11] cli_3.3.0 DBI_1.1.2 rstudioapi_0.13 yaml_2.3.5 xfun_0.31
[16] fastmap_1.1.0 httr_1.4.3 stringr_1.4.0 knitr_1.39 xml2_1.3.3
[21] systemfonts_1.0.4 generics_0.1.2 vctrs_0.4.1 webshot_0.5.2 tidyselect_1.1.2
[26] svglite_2.1.0 glue_1.6.2 R6_2.5.1 fansi_1.0.3 rmarkdown_2.14
[31] bookdown_0.25 purrr_0.3.4 magrittr_2.0.3 scales_1.2.0 ellipsis_0.3.2
[36] htmltools_0.5.2 rsconnect_0.8.25 assertthat_0.2.1 rvest_1.0.2 colorspace_2.0-3
[41] utf8_1.2.2 stringi_1.7.6 munsell_0.5.0 crayon_1.5.1
rmdformats 版本 1.0.3
会话信息
R version 4.1.0 (2021-05-18)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS 12.4
Matrix products: default
LAPACK: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRlapack.dylib
locale:
[1] nl_NL.UTF-8/nl_NL.UTF-8/nl_NL.UTF-8/C/nl_NL.UTF-8/nl_NL.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] kableExtra_1.3.4 dplyr_1.0.9 rmdformats_1.0.3 devtools_2.4.3 usethis_2.1.5
loaded via a namespace (and not attached):
[1] tidyselect_1.1.2 xfun_0.31 remotes_2.4.2 purrr_0.3.4 colorspace_2.0-3
[6] vctrs_0.4.1 generics_0.1.2 testthat_3.1.2 viridisLite_0.4.0 htmltools_0.5.2
[11] utf8_1.2.2 rlang_1.0.2 pkgbuild_1.3.1 pillar_1.7.0 glue_1.6.2
[16] withr_2.5.0 DBI_1.1.2 sessioninfo_1.2.2 lifecycle_1.0.1 stringr_1.4.0
[21] munsell_0.5.0 rvest_1.0.2 evaluate_0.15 memoise_2.0.1 knitr_1.39
[26] callr_3.7.0 fastmap_1.1.0 ps_1.7.0 fansi_1.0.3 scales_1.2.0
[31] cachem_1.0.6 desc_1.4.1 pkgload_1.2.4 webshot_0.5.2 fs_1.5.2
[36] systemfonts_1.0.4 brio_1.1.3 digest_0.6.29 stringi_1.7.6 bookdown_0.26
[41] processx_3.5.3 rprojroot_2.0.2 cli_3.3.0 tools_4.1.0 magrittr_2.0.3
[46] tibble_3.1.7 crayon_1.5.1 pkgconfig_2.0.3 ellipsis_0.3.2 xml2_1.3.3
[51] prettyunits_1.1.1 assertthat_0.2.1 rmarkdown_2.14 svglite_2.1.0 httr_1.4.3
[56] rstudioapi_0.13 R6_2.5.1 compiler_4.1.0
您必须控制 table 和 table 包装器元素。如果这不是您要找的,请告诉我。
---
title: "Test"
output: rmdformats::downcute
---
<style>
table, .table-wrapper {
height: 400px;
width: 100%;
overflow: auto;
}
</style>
```{r, echo=FALSE, warning=FALSE, message=FALSE}
library(dplyr)
library(kableExtra)
mtcars %>%
bind_cols(mtcars) %>%
kbl() #%>%
# scroll_box(width = "100%", height = "400px")
```
我不知道您打算如何使用另一个 space,但此模板的边距令人讨厌。如果你想最大限度地利用space,那么将<style>
标签之间的内容更新为如下内容:
<style>
table, .table-wrapper {
height: 400px;
width: 100%;
overflow: auto;
}
.layout-narrow .Wrap {
margin: unset;
max-width: unset;
}
</style>
请注意,现在没有水平滚动条,因为显示了 table 的整个宽度。
更新:添加粘性 header 行
要使顶行固定,请将 <styles>
标记中的内容更改为以下内容。 (您仍然可以向其中添加 .layout-narrow .Wrap
样式。)
请注意,这不是 table, .table-wrapper
。 table
不再在这些标签中。
<style>
.table-wrapper {
overflow: auto;
height: 400px;
width: 100%;
}
thead, th {
top: 0;
position: sticky;
z-index: 2;
}
</style>