如何从 rmdformats 修改 "downcute" CSS,让作者如 "readthedown"

How to modify "downcute" CSS from rmdformats, to have author as in "readthedown"

我对CSS的理解不够基本。我对某些元素的作用有一个模糊的概念,并且我设法自定义它们的颜色或字体大小。但是我真的不明白如何实现下面的。

我很喜欢 downcute CSS style from the rmdformats collection (here's an example).

但我更喜欢作者和日期在目录左下角的位置,如 readthedown CSS (here's an example).

我试图通过添加自定义 CSS 来实现这一点,在其中复制一些 readthedown.css 的元素(例如“#postamble”)似乎可以实现这一点。但它不起作用 – 它超出了我的范围。

我想做的事情是否可以通过一种简单的方式实现,例如,通过在 downcute css 之上添加自定义 CSS?对于“#postamble”或“.Content p.authors 等元素的任何建议、机械说明或解释,我将不胜感激 .Content p.date" 作品.

(HTML 页面是使用 knitr 在 R 中根据这些模板创建的)

你很久以前就问过这个问题,但我今天才发现你的问题。我有两个选择给你。在第一个中,它只是将作者移到侧边栏的底部。在第二个选项中,您将获得对比鲜明的背景(以及移动的作者姓名)。

您将像往常一样在 downcute RMD 的 YAML 中声明作者。然后在你的 RMD 中的任何地方添加这个 javascript 块。如果你尝试 运行 内联一个 JS 块,它不会做任何事情。你必须编织才能让它发挥作用。在这个例子中,作者的名字是 downcute.

选项 1

```{r listenOrElse,results="asis",engine="js",echo=F}

setTimeout(function(){
  au = document.querySelector("p.authors");
  ah = au.clientHeight; // get height of author element
  sb = document.querySelector("div.Sidebar");
  sh = sb.clientHeight; // get height of sidebar
  
  anh = sh - ah; // calculate the top position of moved author element

  $(au).appendTo(sb);  // move the author
  $(au).css({top: anh + 'px', left: '5px', position: 'absolute'}); // set placement
}, 400); // in case of delayed build

```

选项 2

```{r OrElse,results="asis",engine="js",echo=F}
// alternative with contrast background
setTimeout(function(){
  au = document.querySelector("p.authors");
  ah = au.clientHeight; // get height of author element
  sb = document.querySelector("div.Sidebar");
  sh = sb.clientHeight; // get height of sidebar
  dnh = sh - (ah*2); // calculate the top position of moved author element
  dv = document.createElement("div");
  $(dv).appendTo(sb);
  $(dv).css({top: dnh + 'px', left: 0, width: '100%',
             height: ah * 2 + 'px',
             position: 'absolute', display: 'block', 
             background: '#7B7B7B'});
  $(au).appendTo(dv);  // move the author
  $(au).css({top: ah * .5 + 'px', left: '5px', position: 'absolute', 
             color: '#F7F7F7', fontWeight: 'bold'}); // set placement
}, 400); // in case of delayed build

```