CSS Web打印页眉
在网页打印时,我们经常需要在打印页面的顶部添加页眉信息,例如公司名称、日期、页码等。通过CSS,我们可以很容易地实现这一功能。本文将详细介绍如何使用CSS来创建Web打印页眉,并提供多个示例代码供参考。
1. 使用@page规则定义页眉
在CSS中,我们可以使用@page规则来定义打印页面的样式,包括页眉、页脚等。通过设置margin、padding、content等属性,我们可以自定义打印页面的布局。下面是一个简单的示例代码,演示如何定义一个包含公司名称和日期的页眉:
@page {
margin-top: 50px;
}
@page {
@top-center {
content: "Geek Docs";
}
@top-right {
content: "Date: " attr(data-date);
}
}
在上面的示例中,我们使用@page规则定义了一个页眉,其中包含公司名称”Geek Docs”和日期信息。我们通过设置margin-top属性来控制页眉距离页面顶部的距离,通过@top-center和@top-right来设置页眉内容的位置。
2. 添加页眉内容
除了在@page规则中定义页眉外,我们还可以在文档中直接添加页眉内容。下面是一个示例代码,演示如何在文档中添加自定义的页眉内容:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Print Header Example</title>
<style>
@media print {
.header {
position: fixed;
top: 0;
left: 0;
right: 0;
background-color: #f0f0f0;
padding: 10px;
text-align: center;
}
}
</style>
</head>
<body>
<div class="header">
<h1>Geek Docs</h1>
<p>Date: 2022-01-01</p>
</div>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ac justo nec odio ultricies lacinia.</p>
</body>
</html>
代码运行结果:
在上面的示例中,我们使用@media print媒体查询来定义打印时显示的样式。通过设置.header元素的position为fixed,我们可以将页眉固定在页面顶部。在.header元素中添加公司名称和日期信息,即可实现自定义的页眉内容。
3. 打印页眉中添加页码
在打印页面时,通常需要在页眉或页脚中添加页码信息。下面是一个示例代码,演示如何在页眉中添加页码信息:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Print Header with Page Number Example</title>
<style>
@media print {
.header {
position: fixed;
top: 0;
left: 0;
right: 0;
background-color: #f0f0f0;
padding: 10px;
text-align: center;
}
.page:after {
content: counter(page);
}
}
</style>
</head>
<body>
<div class="header">
<h1>Geek Docs</h1>
<p>Date: 2022-01-01</p>
<p>Page: <span class="page"></span></p>
</div>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ac justo nec odio ultricies lacinia.</p>
</body>
</html>
代码运行结果:
在上面的示例中,我们使用counter()函数和:after伪元素来添加页码信息。通过设置.page元素的content为counter(page),即可在打印页眉中显示当前页码信息。
4. 打印页面中添加Logo
除了文本信息外,我们还可以在打印页眉中添加Logo等图片信息。下面是一个示例代码,演示如何在页眉中添加Logo图片:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Print Header with Logo Example</title>
<style>
@media print {
.header {
position: fixed;
top: 0;
left: 0;
right: 0;
background-color: #f0f0f0;
padding: 10px;
text-align: center;
}
.logo {
width: 100px;
height: auto;
}
}
</style>
</head>
<body>
<div class="header">
<img src="logo.png" alt="Geek Docs Logo" class="logo">
<h1>Geek Docs</h1>
<p>Date: 2022-01-01</p>
<p>Page: <span class="page"></span></p>
</div>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ac justo nec odio ultricies lacinia.</p>
</body>
</html>
代码运行结果:
在上面的示例中,我们通过添加img元素来引入Logo图片,并设置.logo元素的样式来控制Logo的大小。通过在页眉中添加Logo图片,可以使打印页面更加专业和个性化。
5. 打印页面中添加水印
除了页眉信息外,我们还可以在打印页面中添加水印信息,例如“Confidential”、“Draft”等。下面是一个示例代码,演示如何在打印页面中添加水印信息:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Print Header with Watermark Example</title>
<style>
@media print {
body {
background-image: url('watermark.png');
background-repeat: repeat;
background-size: 200px;
background-position: center;
}
}
</style>
</head>
<body>
<h1>Geek Docs</h1>
<p>Date: 2022-01-01</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ac justo nec odio ultricies lacinia.</p>
</body>
</html>
代码运行结果:
在上面的示例中,我们通过设置body元素的background-image属性来添加水印图片。通过设置background-repeat、background-size和background-position等属性,可以控制水印的重复方式、大小和位置。
6. 打印页面中添加自定义样式
在打印页面时,我们可以根据需要添加自定义的样式,例如修改字体、颜色、间距等。下面是一个示例代码,演示如何在打印页面中添加自定义样式:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Custom Print Style Example</title>
<style>
@media print {
body {
font-family: Arial, sans-serif;
color: #333;
line-height: 1.5;
}
h1 {
color: #007bff;
}
p {
font-size: 14px;
}
}
</style>
</head>
<body>
<h1>Geek Docs</h1>
<p>Date: 2022-01-01</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ac justo nec odio ultricies lacinia.</p>
</body>
</html>
代码运行结果:
在上面的示例中,我们通过@media print媒体查询来定义打印时显示的样式。通过设置body元素的font-family、color和line-height等属性,可以修改打印页面的字体、颜色和行高。通过设置h1元素和p元素的样式,可以自定义标题和段落的样式。
7. 打印页面中添加分页符
在打印长页面时,我们通常需要在每页的末尾添加分页符,以便更好地控制打印页面的分页。下面是一个示例代码,演示如何在打印页面中添加分页符:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Print Page Break Example</title>
<style>
@media print {
.page-break {
page-break-after: always;
}
}
</style>
</head>
<body>
<h1>Geek Docs</h1>
<p>Date: 2022-01-01</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ac justo nec odio ultricies lacinia.</p>
<div class="page-break"></div>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ac justo nec odio ultricies lacinia.</p>
</body>
</html>
代码运行结果:
在上面的示例中,我们通过设置.page-break元素的page-break-after属性为always来添加分页符。在需要分页的地方插入.page-break元素,即可实现在打印页面中添加分页符的效果。
8. 打印页面中添加动态内容
在打印页面时,有时我们需要根据用户输入或其他条件来动态生成内容。下面是一个示例代码,演示如何在打印页面中添加动态内容:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dynamic Print Content Example</title>
<style>
@media print {
.dynamic-content {
display: none;
}
}
</style>
</head>
<body>
<h1>Geek Docs</h1>
<p>Date: 2022-01-01</p>
<div class="dynamic-content">
<p>Dynamic Content: Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
</div>
</body>
</html>
代码运行结果:
在上面的示例中,我们通过设置.dynamic-content元素的display为none来隐藏动态内容。在需要显示动态内容的地方根据条件动态添加.dynamic-content元素,即可实现在打印页面中添加动态内容的效果。
9. 打印页面中添加表格
在打印页面中,表格是常见的内容形式之一。下面是一个示例代码,演示如何在打印页面中添加表格:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Print Table Example</title>
<style>
@media print {
table {
width: 100%;
border-collapse: collapse;
}
th, td {
border: 1px solid #333;
padding: 5px;
}
}
</style>
</head>
<body>
<h1>Geek Docs</h1>
<p>Date: 2022-01-01</p>
<table>
<tr>
<th>Name</th>
<th>Age</th>
</tr>
<tr>
<td>John</td>
<td>30</td>
</tr>
<tr>
<td>Jane</td>
<td>25</td>
</tr>
</table>
</body>
</html>
代码运行结果:
在上面的示例中,我们通过设置table元素和th、td元素的样式来定义打印页面中的表格。通过设置border、padding等属性,可以控制表格的边框和内边距,使表格在打印页面中显示清晰。
10. 打印页面中添加列表
除了表格外,列表也是常见的内容形式之一。下面是一个示例代码,演示如何在打印页面中添加列表:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Print List Example</title>
<style>
@media print {
ul {
list-style: none;
padding: 0;
}
li {
margin-bottom: 5px;
}
}
</style>
</head>
<body>
<h1>Geek Docs</h1>
<p>Date: 2022-01-01</p>
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</body>
</html>
代码运行结果:
在上面的示例中,我们通过设置ul元素和li元素的样式来定义打印页面中的列表。通过设置list-style、padding、margin等属性,可以控制列表的样式和间距,使列表在打印页面中显示清晰。
通过以上示例代码,我们可以看到如何使用CSS来创建Web打印页眉,并在打印页面中添加各种内容,包括文本、图片、水印、分页符、表格、列表等。通过灵活运用CSS,我们可以定制出符合需求的打印页面,提升用户体验和页面展示效果。