在本文中,我们回顾了使用CSS创建打印机友好网页的艺术。
打印机友好的页面的重要性:尽管存在数字时代,但仍需要对打印机友好的网页。打印网页对于各种目的都是必不可少的,例如打印旅行票,离线阅读,并为那些难以使用屏幕的人提供可访问的信息。本文强调了优化打印网页以改善可访问性和用户体验的必要性。
实用的技巧和技术:本文为创建有效的打印样式提供了丰富的实用建议。关键建议包括删除不必要的元素,使用适当的字体和尺寸进行线性化布局,管理页面中断以及包括印刷版本的补充内容。这些技巧可帮助Web开发人员确保可以轻松有效地打印其网站,从而在维护Web内容的完整性的同时节省墨水和纸张。
为什么我们需要CSS进行打印?
复制路线方向或时间表
>
部分可以完全裁剪或完全消失>将响应式,连续的媒体转换为任何规模和方向的分类纸可能具有挑战性。但是,CSS打印控制已有多年了,并且可以在数小时内完成基本样式表。以下各节描述了使您的页面友好型页面的良好支持和实用的选择。
>打印CSS可以是:
>选择取决于您的网站/应用。就个人而言,我在大多数情况下都使用屏幕样式作为打印基础。但是,我已经为具有根本不同输出的应用程序使用了单独的样式表 - 例如会议预订系统,该系统在屏幕上显示时间表网格,但在纸上按时间顺序排列。
标准样式表之后,可以将打印样式表添加到html :之后
<span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="main.css"</span> /></span> </span><span><span><span><link</span> rel<span>="stylesheet"</span> media<span>="print"</span> href<span>="print.css"</span> /></span> </span>> print.css样式将在打印页面时应用于屏幕样式。
>
要分开屏幕和打印媒体,main.css仅针对屏幕:或者,可以使用@Media规则将打印样式包含在现有CSS文件中。例如:
<span><span><span><link</span> rel<span>="stylesheet"</span> media<span>="screen"</span> href<span>="main.css"</span> /></span> </span><span><span><span><link</span> rel<span>="stylesheet"</span> media<span>="print"</span> href<span>="print.css"</span> /></span> </span>
>可以添加任意数量的@Media打印规则,因此这对于将相关样式保持在一起可能是实用的。屏幕和打印规则也可以在必要时分开:
<span>/* main.css */ </span><span>body { </span> <span>margin: 2em; </span> <span>color: #fff; </span> <span>background-color: #000; </span><span>} </span> <span>/* override styles when printing */ </span><span><span>@media print</span> { </span> <span>body { </span> <span>margin: 0; </span> <span>color: #000; </span> <span>background-color: #fff; </span> <span>} </span> <span>} </span>
测试打印机输出
<span>/* main.css */ </span> <span>/* on-screen styles */ </span><span><span>@media screen</span> { </span> <span>body { </span> <span>margin: 2em; </span> <span>color: #fff; </span> <span>background-color: #000; </span> <span>} </span> <span>} </span> <span>/* print styles */ </span><span><span>@media print</span> { </span> <span>body { </span> <span>margin: 0; </span> <span>color: #000; </span> <span>background-color: #fff; </span> <span>} </span> <span>} </span>>每次您要测试打印布局时,都不需要杀死树木并使用非常昂贵的墨水!以下选项在屏幕上复制打印样式。
最可靠的选项是浏览器中的“打印预览”选项。这显示了如何使用默认纸张大小来处理页面中断。
>开发人员工具
devTools(
f12 shift i> i)可以模仿打印样式,尽管页面断开不会是显示。
在Chrome中,打开开发人员工具并选择更多工具,然后从右上角的三点图标菜单中渲染。更改模拟CSS介质以在该面板的底部打印。
hack your媒体属性
<span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="main.css"</span> /></span> </span><span><span><span><link</span> rel<span>="stylesheet"</span> media<span>="print"</span> href<span>="print.css"</span> /></span> </span>
>再次,这不会揭示页面中断。完成测试后,请不要忘记将属性还原为媒体=“打印”。
>>
<span><span><span><link</span> rel<span>="stylesheet"</span> media<span>="screen"</span> href<span>="main.css"</span> /></span> </span><span><span><span><link</span> rel<span>="stylesheet"</span> media<span>="print"</span> href<span>="print.css"</span> /></span> </span>>可能有必要使用显示:无!如果CSS或JavaScript功能根据特定的UI状态显示元素。通常不建议使用!很重要,但是我们可以证明其在一组基本的打印机样式中使用,该样式覆盖了屏幕默认值。
>线性化布局
打印机样式
现在可以应用确保您在白色背景上使用深文本
标准A4和美国字母纸可能会导致更长且较不可读的文本行。考虑在打印布局中使用CSS列。例如:
使用边界代替背景颜色
<span>/* main.css */ </span><span>body { </span> <span>margin: 2em; </span> <span>color: #fff; </span> <span>background-color: #000; </span><span>} </span> <span>/* override styles when printing */ </span><span><span>@media print</span> { </span> <span>body { </span> <span>margin: 0; </span> <span>color: #000; </span> <span>background-color: #fff; </span> <span>} </span> <span>} </span>
您的模板可能具有深色或逆配色方案表示的部分或呼叫框:
>通过用边框表示这些元素来保存墨水:
>删除或反转图像
>
>用户不想打印装饰性和非必要图像和背景。您可以考虑一个默认值,除非所有图像都隐藏了所有图像,否
<span>/* main.css */ </span> <span>/* on-screen styles */ </span><span><span>@media screen</span> { </span> <span>body { </span> <span>margin: 2em; </span> <span>color: #fff; </span> <span>background-color: #000; </span> <span>} </span> <span>} </span> <span>/* print styles */ </span><span><span>@media print</span> { </span> <span>body { </span> <span>margin: 0; </span> <span>color: #000; </span> <span>background-color: #fff; </span> <span>} </span> <span>} </span>> CSS过滤器可用于在打印样式表中反转和调整颜色。例如:
结果:
>印刷媒体通常需要在屏幕上不需要的其他信息。 CSS内容属性可用于将文本附加到::之前和伪元素之后。例如,在文本之后在括号中显示链接的URL:
><span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="main.css"</span> /></span> </span><span><span><span><link</span> rel<span>="stylesheet"</span> media<span>="print"</span> href<span>="print.css"</span> /></span> </span>
或您可以添加仅印刷消息:
<span><span><span><link</span> rel<span>="stylesheet"</span> media<span>="screen"</span> href<span>="main.css"</span> /></span> </span><span><span><span><link</span> rel<span>="stylesheet"</span> media<span>="print"</span> href<span>="print.css"</span> /></span> </span>对于更复杂的情况,请考虑在元素上使用诸如打印等类,仅在打印时才能可见。例如:
<span>/* main.css */ </span><span>body { </span> <span>margin: 2em; </span> <span>color: #fff; </span> <span>background-color: #000; </span><span>} </span> <span>/* override styles when printing */ </span><span><span>@media print</span> { </span> <span>body { </span> <span>margin: 0; </span> <span>color: #000; </span> <span>background-color: #fff; </span> <span>} </span> <span>} </span>CSS:
<span>/* main.css */ </span> <span>/* on-screen styles */ </span><span><span>@media screen</span> { </span> <span>body { </span> <span>margin: 2em; </span> <span>color: #fff; </span> <span>background-color: #000; </span> <span>} </span> <span>} </span> <span>/* print styles */ </span><span><span>@media print</span> { </span> <span>body { </span> <span>margin: 0; </span> <span>color: #000; </span> <span>background-color: #fff; </span> <span>} </span> <span>} </span>
注意:大多数浏览器在打印页面的标题和/或页脚上显示URL和当前日期/时间,因此很少需要以代码生成此信息。 页面断裂
> css3属性在元素之前和之后的页面,列或区域的表现如何在元素之前和之后进行表现。支持非常好,但是较旧的浏览器可能会使用类似的页面断点 - 拆分和页面破坏属性。auto:默认值 - 允许休息,但不强制
避免:避免在页面,列或区域
> Break-inside(和较旧的页面断路内)属性指定是否允许在元素内进行页面断路。通常支持的值:
<span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="main.css"</span> /></span> </span><span><span><span><link</span> rel<span>="stylesheet"</span> media<span>="screen"</span> href<span>="print.css"</span> /></span> </span>
auto:默认值 - 允许休息,但不强制 避免:避免在可能的情况下
避免页:避免在可能的情况下避免内部页面断开
>最后,CSS分类媒体(@page)的浏览器支持有限,但提供了针对特定页面的方法,因此可以定义替代的边距或断点:
<span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="main.css"</span> /></span> </span><span><span><span><link</span> rel<span>="stylesheet"</span> media<span>="print"</span> href<span>="print.css"</span> /></span> </span>> CSS页面断路属性可以放置在您的屏幕或打印样式中,因为它们仅影响打印,但我建议在Print CSS中使用它们,以清晰地进行。
请注意,页面断开控制仅仅是浏览器的建议。不能保证会被迫或避免休息,因为布局仅限于纸张的范围。
>印刷疼痛控制Web媒体的控制始终将受到限制,并且结果可能会在浏览器之间变化。也就是说:
>打印机友好的样式床单可以恢复到任何站点
>css Master,第三版。 关于使用CSS
创建打印机友好的页面的常见问题解答>创建CSS打印样式表对于在打印网页时控制网页的外观很重要。结束我们的结尾,介绍一些有关如何使用CSS创建打印机友好的页面的常见问题。> 什么是打印的CSS?
>我如何使用CSS进行打印?
>>有两种基本方法可以在CSS中提供打印样式:通过单独的样式表或通过媒体查询。 CSS打印样式可以存储在文档的
部分中链接到网页的单独样式表中:>用于打印样式表的常见用例包括:
- 调整字体尺寸和样式以在纸上可读性。
- 删除或隐藏打印时与某些元素无关的元素(例如导航菜单)。 - 确保图像和背景颜色默认不打印。
- 指定页面断路以控制内容如何在页面上划分。
@media print {
}
}
>如何指定“打印样式”中的页面中断?
@media print {
.page-break {
page-break-before:始终;
}
}
}
>我可以更改打印文档的页面余量吗?
@page {
margin:1cm;
}
我如何确保图像和背景颜色不打印?
@media print {
img {
display:none;
}
body {
}
}
@media print {
{
font-size:12pt;
font-family:arial,sans-serif;
}
}
}
>您可以使用Web浏览器的打印预览功能来测试打印样式表。大多数现代浏览器都可以让您查看页面印刷时的外观,而无需实际打印。
以上是如何使用CSS创建打印机友好的页面的详细内容。更多信息请关注PHP中文网其他相关文章!