CSS 打印页眉和页脚

CSS 打印页眉和页脚

CSS 打印页眉和页脚

在网页中,我们有时需要打印页面内容,例如打印报告、文档等。而在打印时,经常需要在每一页的页眉和页脚位置添加一些额外的信息,如公司名称、页码等。在 CSS 中,我们可以使用 @media 查询和 @page 规则来实现打印页眉和页脚。

@media 查询

CSS 中的 @media 查询可以用来指定不同的样式规则在不同的媒体类型下生效。例如,在屏幕上显示的页面样式和在打印时的页面样式可以不同。我们可以使用 print 媒体类型来指定打印时的样式规则。

@media print {
  /* 在这里编写打印时的样式规则 */
}

@page 规则

CSS 中的 @page 规则可以用来设置打印页面的样式,包括页眉和页脚。在 @page 规则中,我们可以使用 @top-center@top-left@top-right@bottom-center@bottom-left@bottom-right 等伪类选择器来选择页眉和页脚位置,并设置相应的样式。

@page {
  @top-center {
    /* 在这里编写页眉样式 */
  }

  @bottom-center {
    /* 在这里编写页脚样式 */
  }
}

设置页眉和页脚

下面是一个示例,展示了如何使用 @media 查询和 @page 规则来设置打印页面的页眉和页脚。

<!DOCTYPE html>
<html>
<head>
  <title>打印页眉和页脚</title>
  <style>
    @media print {
      @page {
        size: A4;
        margin: 2cm;
      }

      @top-center {
        content: "公司名称";
        font-size: 18px;
      }

      @bottom-center {
        content: "第" counter(page) "页,总共" counter(pages) "页";
        font-size: 14px;
      }
    }
  </style>
</head>
<body>
  <h1>打印页眉和页脚示例</h1>
  <p>这是一个用于演示如何使用 CSS 设置打印页眉和页脚的示例。</p>

  <!-- 更多内容 -->

  <script>
    window.print();
  </script>
</body>
</html>

在上面的示例中,我们使用了 @media print 查询来指定打印时的样式规则。然后,在 @page 规则中,我们使用 @top-center 伪类选择器来选择页眉的位置,并设置了页眉的内容为 “公司名称”,字体大小为 18px。类似地,我们使用 @bottom-center 伪类选择器来选择页脚的位置,并设置了页脚的内容为 “第 X 页,总共 Y 页”,其中使用了 counter(page)counter(pages) 来生成页码信息,字体大小为 14px。

在 HTML 文件的 <body> 标签结束之前,我们使用了 JavaScriptwindow.print() 方法来触发打印操作。这样,当页面加载完成后,浏览器会自动弹出打印对话框,让用户选择打印机并设置打印选项。

运行结果

上面的示例中,当我们执行打印操作时,页面会打印出每一页的页眉和页脚信息。页眉中的 “公司名称” 会显示在每一页的中央位置,页脚中的页码信息会显示在每一页的底部中央位置。

为了更好地展示效果,下面是打印页面的一个示例截图:

        -----------------------------
        |                           |
        |         公司名称          |
        |                           |
        -----------------------------

        页面内容...

        -----------------------------
        第 1 页,总共 3 页

总结

通过使用 CSS 的 @media 查询和 @page 规则,我们可以在打印时自定义页面的页眉和页脚。这样,我们可以在打印报告、文档等时,方便地添加一些额外的信息,如公司名称、页码等。同时,我们还可以通过 JavaScriptwindow.print() 方法来触发打印操作,使打印过程更加便捷。使用这些技巧,我们可以更好地控制打印页面的样式,实现更好的打印效果。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程