如何使用CSS创建易于打印的页面

打印旅行或音乐会门票复制路线方向或时间表保存副本以供离线阅读在连通性差的区域中访问信息在危险或肮脏的条件下使用数据,例如厨房或工厂输出书面注释的草稿内容打印网络收据以进行簿记向难以使用屏幕的残障人士提供文件为拒绝使用这种新奇的t-internet废话的同事打印页面。

不幸的是,打印页面可能会令人沮丧:

文字可能太小,太大或太暗列可能太窄,太宽或页边距溢出切片可能被裁剪或完全消失墨水浪费在不必要的彩色背景和图像上链接网址无法显示图标,菜单和广告将被打印,永远无法点击!

许多开发者主张Web可访问性,但很少有人记得使打印的Web可访问!

将敏感的,连续的介质转换为任何尺寸和方向的分页纸都可能是一项挑战。但是,CSS打印控件已经可以使用很多年了,基本样式表可以在数小时内完成。以下各节介绍了使页面易于打印的良好支持和实用选项。新建一个前端学习qun438905713,在群里大多数都是零基础学习者,大家相互帮助,相互解答,并且还准备很多学习资料,欢迎零基础的小伙伴来一起交流。

打印样式表

打印CSS可以是:

除屏幕样式外,还适用。以屏幕样式为基础,打印机样式将在必要时覆盖这些默认样式。应用为单独的样式。屏幕和打印样式是完全分开的。两者都从浏览器的默认样式开始。

选择将取决于您的站点/应用程序。就个人而言,我大多数时候都使用屏幕样式作为打印基础。但是,我为输出完全不同的应用程序使用了单独的样式表,例如会议预订系统,该系统在屏幕上显示时间表网格,但在纸上按时间顺序排列。

可以在标准样式表之后将打印样式表添加到HTML :

该print.css样式将被应用除了屏幕样式打印页面时。

要分离屏幕和打印介质,main.css应仅将屏幕定位:

或者,可以使用@media规则将打印样式包含在现有CSS文件中。例如:

/* main.css */ body { margin: 2em; color: #fff; background-color: #000; } /* override styles when printing */ @media print { body { margin: 0; color: #000; background-color: #fff; } }

@media print可以添加任意数量的规则,因此对于将关联的样式保持在一起可能是可行的。屏幕和打印规则也可以根据需要分开:

/* main.css */ /* on-screen styles */ @media screen { body { margin: 2em; color: #fff; background-color: #000; } } /* print styles */ @media print { body { margin: 0; color: #000; background-color: #fff; } }

测试打印机输出

每次您要测试打印布局时,都不必杀死树木并使用昂贵的墨水!以下选项可复制屏幕上的打印样式。

打印预览

最可靠的选项是浏览器中的打印预览选项。这显示了如何使用默认的纸张尺寸处理分页符。

或者,您可以通过导出为PDF来保存或预览页面。

开发者工具

尽管不会显示分页符,但是DevTools(F12或Cmd/Ctrl+ Shift+ I)可以模拟打印样式。

在Chrome中,打开开发者工具,然后选择更多工具,然后从右上角的三点图标菜单中选择渲染。更改模拟CSS媒体对打印在该面板的底部。

在Firefox中,打开开发人员工具,然后在“ 检查器”选项卡的样式窗格中单击“ 切换打印媒体模拟”图标:

破解您的媒体属性

假设您正在使用标签来加载打印机CSS,则可以将media属性临时更改为screen:

同样,这不会显示分页符。media="print"完成测试后,请不要忘记将属性还原到。

删除不必要的部分

在执行其他操作之前,请使用删除并折叠多余的内容display: none;。纸上典型的不必要部分可能包括导航菜单,英雄图像,页眉,页脚,表单,边栏,社交媒体小部件和广告块(通常是iframe)。

/* print.css */ header, footer, aside, nav, form, iframe, .menu, .hero, .adslot { display: none; }

display: none !important;如果CSS或JavaScript功能根据特定的UI状态显示元素,则可能需要使用。使用!important通常不推荐,但我们可以证明其在一组基本的打印机款式其中覆盖屏幕默认使用。

线性化布局
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后的最后

面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。
需要完整面试题的朋友可以点击蓝色字体获取

大厂面试题

面试题目录

外链图片转存中…(img-vbkDbCda-1713249059055)]

[外链图片转存中…(img-8RncQYKg-1713249059056)]

[外链图片转存中…(img-ly7moXAH-1713249059056)]

[外链图片转存中…(img-Q7y5dAyG-1713249059056)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值