html – 在Chrome中使用CSS打印目录的页码

前端之家收集整理的这篇文章主要介绍了html – 在Chrome中使用CSS打印目录的页码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_0@
有没有办法打印目标页码与超链接,链接到同一文件中的各个地方?
  1. <h1>Table of Contents</h1>
  2. <ul>
  3. <li><a href="#introduction">Introduction</a></li>
  4. </ul>
  5.  
  6. ...
  7.  
  8. <section id="introduction"> <!-- Appears,for example,on page 3 when printed -->
  9. <h1>Introduction</h1>
  10. ...
  11. </section>

这样输出就像:

  1. Table of Contents (page 0)
  2.  
  3. Introduction.........................3
  4.  
  5.  
  6. ...
  7.  
  8.  
  9. Introduction (page 3)

打印到PDF(在OS X上)时,我只需要使用此功能就可以使用Google Chrome浏览器.

是否有一些CSS或JavaScript技巧可以让我实现这一目标?

解决方法

我不知道这是否适用于PDF,但回答了如何在CSS中完成此操作的问题:

您可以使用css中伪元素的反增量生成数字:

请注意,我更改了您的< ul>到< ol>因为这是一个有序列表,无论您是否使用列表样式.

  1. ol {
  2. counter-reset: list-counter;
  3. }
  4. li:after {
  5. counter-increment: list-counter;
  6. content: counter(list-counter);
  7. float: right;
  8. }

在文本和数字之间做一点虚线需要更多的工作,但你可以通过添加一些额外的span元素并使用css display:table;并显示:table-cell;妥善安排它们:

  1. <ol>
  2. <li><span>Test</span><span class="line"></span></li>
  3. <li><span>Test2</span><span class="line"></span></li>
  4. <li><span>Test3</span><span class="line"></span></li>
  5. </ol>
  1. li {
  2. display: table;
  3. }
  4. li span,li:after {
  5. display: table-cell;
  6. vertical-align: bottom;
  7. }
  8. li span.line {
  9. border-bottom: 1px dotted #000;
  10. width: 100%;
  11. }

在span.line元素上将宽度设置为100%,而不设置任何宽度会强制它填充所有剩余空间(这是由于表格单元格显示元素不允许中断到新行,并且阻止溢出的内容)

See full demo

这不是必须添加额外span元素的最干净的方法,但这是一个棘手的任务.也许其他人可以花时间想出一种更有效的方法来实现它?您可以随时在整个< li>下面添加下划线,并跳过额外的标记,但代价是不太酷.

猜你在找的HTML相关文章