Erstellen Sie in Quarto eine Funktion, die dem festen Tabellenkopf in RMarkdown ähnelt
P粉366946380
2023-08-29 17:12:38
<p>Ich habe versucht, einen Sticky-Table-Header aus dem R-Paket <code>table1</code> zu rendern, was mir auch in RMarkdown gelungen ist. Allerdings scheint Quarto meine CSS-Datei nicht zu erkennen, oder (wahrscheinlicher) ich übersehe etwas. </p>
<p>Ich habe die CSS-Dateien mit .rmd und .qmd eingefügt, um sie reproduzieren zu können. Ich habe auch Inline-HTML-Code eingefügt, um ein Bildlauffeld zu erstellen, damit der Tabellenkopf fixiert ist. </p>
<p>style.css:</p>
<pre class="brush:php;toolbar:false;">.Rtable1 th {
Rand: 0;
Textausrichtung: Mitte;
Polsterung: 0,5ex 1,5ex;
Rand: 0;
Hintergrundfarbe: #D3D3D3;
Farbe: Schwarz;
Position: klebrig;
oben: 0;
Rand oben: 2pt einfarbig schwarz;
Rand unten: 1pt einfarbig schwarz;
}</pre>
<p>car.rmd:</p>
<pre class="brush:php;toolbar:false;">---
Titel: "Autos"
Ausgabe:
html_document:
CSS: Styles.css
---
„{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE, message = FALSE)
„
„{r}
Bibliothek(Tabelle1)
Bibliothek(tidyverse)
Autos <- mtcars
car$cars <- rownames(cars)
Autos <-
Autos |>
mutieren(
Gang = Faktor (Gang)
)
„
<div style="height:450px; width:500; border:1.5px solid grey"
„{r}
Tabelle1::Tabelle1(
~ Autos |. Ausrüstung,
Daten = Autos
)
„
</div></pre>
<p>car.qmd:</p>
<pre class="brush:php;toolbar:false;">---
Titel: Autos
Format:
html:
Inhaltsverzeichnis: wahr
CSS: Styles.css
Stricker:
opts_chunk:
Echo: falsch
Nachricht: falsch
---
„{r}
Bibliothek(Tabelle1)
Bibliothek(tidyverse)
Autos <- mtcars
car$cars <- rownames(cars)
Autos <-
Autos |>
mutieren(
Gang = Faktor (Gang)
)
„
<div style="height:450px; width:500; border:1.5px solid grey"
„{r}
Tabelle1::Tabelle1(
~ Autos |. Ausrüstung,
Daten = Autos
)
„
</div></pre>
<p>Dies ist die erste Frage, die ich gepostet habe, daher hoffe ich, dass ich einen guten Reprex eingereicht habe. Vielen Dank, dass Sie sich die Zeit zum Lesen genommen haben. Ich hoffe auf einen guten Rat. wünsche dir das Beste! </p>
需要注意的一件事是,与R-markdown不同,quarto生成的HTML输出中,无论从代码块中生成什么,都会用两个连续的div包装起来,这两个div具有类名
cell
和cell-output-display
。而类
cell-output-display
具有CSS属性overflow-x
设置为auto
,这是表头的position: sticky
不起作用的主要原因(点击这里查看原因)。因此,我们只需要覆盖类
cell-output-display
的这个属性即可解决问题。cars.qmd
(请注意,我使用了pandoc divs而不是内联html标签来定义一个我们将要覆盖该属性的类。)
styles.css