在LaTeX中创建交叉引用的常用方法是在\label内部放置一些您想要引用的内容,然后使用\ref.因此,例如,as we saw in Section~\ref{intro}在LaTeX源代码中写入可能会产生"正如我们在第1节中所见"的最终输出.是否可以仅使用HTML和CSS获得相同的效果?CSS的新功能允许部分等自动编号,但我没有找到任何允许您从文档中的其他位置引用这些计数器值的内容.
这是一个具体的例子:
<!DOCTYPE html>
<html>
<head>
<title>Cross references</title>
<meta charset="utf-8">
<style type="text/css">
body {
counter-reset: section;
}
section > h1::before {
counter-increment: section;
content: counter(section) ". ";
}
</style>
</head>
<body>
<section>
<h1 id="intro">Introduction</h1>
<p>Pineapples contain essential vitamins.</p>
</section>
<section>
<h1>Further discourse on pineapples</h1>
<p>As we saw in Section ??, pineapples contain essential vitamins.</p>
</section>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在此示例中,所有章节标题前面都有一个自动生成的数字.我想知道是否有任何HTML标记或CSS样式,我可以使用??它来插入对应的数字#intro.
我意识到我可以使用<a href="#intro">创建一个交叉超链接到引言,但我也想在链接文本中包含节号.
如果仅使用HTML和CSS无法做到这一点,是否有任何用于在文档中添加交叉引用的JavaScript库?
DGr*_*ady 10
对我来说,更好的方式(明确地说)这个问题就是"如何在不使用JavaScript的情况下访问由CSS自动生成的内容?"这些问题是相关的:
即使使用JavaScript,看起来访问自动生成的计数器值也不容易,没有它就不可能,所以这回答了我的问题.
W3C提供了许多讨论计数器和生成内容的文档,但据我所知,没有任何文档讨论引用文档其他部分生成的内容:
还有就是 在W3C的一个音符建议扩展CSS的名单是准确地提到交叉引用的问题-它来自写在一封电子邮件1998年,我还没有发现任何的后续工作,所以我想这是不是高度优先.
更新
该页面媒体模块CSS生成内容 讨论了交叉引用明确,并介绍target-counter和target-text功能与CSS来实现它们.但是,这是2011年11月29日的工作草案; 这些功能似乎没有在任何主要浏览器中实现.A List Apart的一篇文章讨论了如何使用这些CSS功能,使用一些随机的专有工具从HTML生成PDF电子书.