使用@media print编写打印专属样式表,通过隐藏非必要元素、重置颜色背景、优化字体分页等提升纸质输出效果,支持内联或外链引入,调试可借助开发者工具模拟打印媒体类型。
使用 print 媒体类型编写打印专属样式表,核心是通过 @media print 规则定义仅在打印(或打印预览)时生效的 CSS 样式,隐藏非必要内容、调整布局、优化可读性。
直接在现有样式表中添加 @media print 块,或单独引入一个专用于打印的 CSS 文件。浏览器在用户点击“打印”或进入打印预览时,自动启用这些规则。
@media print {body { font-size: 12pt; color: #000; background: none; }
.sidebar, .nav, .ads { display: none; }
}
<link rel="stylesheet" href="print.css" media="print">,该文件只在打印时加载
网页默认样式不适合纸张输出,需针对性调整:
display: none
background: transparent !important),确保文字在白纸上清晰可读;避免深色文字配浅色背景导致反白打印serif),字号建议 10–12pt;行高设为 1.4–1.6,提升纸质阅读舒适度page-break-before、page-break-after 或现代 break-before 避免标题孤行、表格断开;对图片/块级元素加 break-inside: avoid
不同浏览器对打印样式的解析略有差异,需注意:
@media print 效果,Firefox 类似;Safari 对某些属性支持较弱(如 break-inside)print
beforeprint / afterprint 事件做临时处理纯文本打印时超链接不可见,可用 CSS 伪元素补充地址:
@media print {a[href]:not([href^="#"])::after {
content: " (" attr(href) ")";
font-size: 9pt;
color: #666;
}
}
a[href^="http"] 可进一步限定仅外链显示 URL,避免内部锚点冗余