如何仅为指定列表应用自定义样式,排除目录与参考文献?
解决Quarto文档中目录与参考文献列表被自定义CSS干扰的问题
你的问题出在自定义CSS全局作用于所有<ul>和<li>元素,导致目录(TOC)和参考文献区域的列表也被应用了红色斜杠样式,出现了不必要的符号和格式异常。只需让自定义样式只作用于指定的普通列表,同时重置目录和参考文献的列表样式即可解决。
步骤1:给需要自定义样式的列表添加专属类
在Quarto文档中,用容器包裹需要应用红色斜杠样式的普通列表,并添加自定义类(比如custom-list):
--- title: "Line Feed No Bueno" execute: echo: false warning: false format: html: css: mystyle.css toc: true ---
library(knitr) library(rmarkdown)
::: {.custom-list}
- List item A
- List item B
:::
References
This document was generated using the R[^1] software environment and employs rmarkdown[^2] for formatting.
[^1]: R Core Team (2024). R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing, Vienna, Austria. URL https://www.R-project.org/.
[^2]: JJ Allaire, et al (2024). rmarkdown: Dynamic Documents for R. R package version 2.27. https://github.com/rstudio/rmarkdown.
## 步骤2:修改CSS文件,精准控制样式作用范围 更新`mystyle.css`,让自定义样式只针对带`.custom-list`类的容器内的列表,同时重置目录和参考文献区域的列表样式: ```css /* 仅对自定义类下的列表应用红色斜杠样式 */ .custom-list ul { list-style: none; padding: 0; margin: 0; font-size: 11pt; font-family: 'Aktiv Grotesk'; } .custom-list li { padding: 0; font-size: 11pt; font-family: 'Aktiv Grotesk'; } .custom-list li::before { content: "/"; padding-right: 8px; color: red; } /* 重置目录(TOC)的列表样式 */ .toc ul, .toc li { list-style: revert !important; padding: revert !important; margin: revert !important; font-size: revert !important; font-family: revert !important; } .toc li::before { content: none !important; } /* 重置参考文献区域的列表样式 */ div#refs ul, div#refs li { list-style: revert !important; padding: revert !important; margin: revert !important; font-size: revert !important; font-family: revert !important; } div#refs li::before { content: none !important; }
代码说明:
.custom-list前缀确保自定义样式只作用于你标记的普通列表,不会影响其他区域的列表。revert属性用来恢复浏览器默认的列表样式,!important确保优先级高于自定义样式。- Quarto生成的目录默认带有
.toc类,参考文献区域默认是div#refs,用这两个选择器精准重置对应区域的样式。
内容的提问来源于stack exchange,提问作者Eric Krantz
相关产品推荐
相关产品推荐

