用 `@media print` 让网页真正能打印:一套可抄的 CSS 清单

读 PDF、圈画纸稿的人还在。浏览器默认 Ctrl/Cmd+P 往往字号失控、页眉难看、链接发灰。美国开发者 Brennen Puth 在 2026 年 10 月 24 日的博文里,把自家站点调到「打印也能读」,并公开了完整 @media print 片段。下面按他的写法整理成可照做的步骤;文中顺带提到的求职意向不扩写。[1]

准备工作

  • 任意现代浏览器;本地或线上 HTML + CSS。

  • 核实日期:北京时间 2026 年 10 月 26 日;步骤与选择器以原帖 CSS 为准。[1]

  • 打印预览:Ctrl+P / Cmd+P,或系统打印对话框里的「预览」。

操作步骤

1、加「只屏幕」与「只打印」钩子

**做什么:**给页眉、导航等不适合上纸的区块加 class noPrint;需要印在纸上、屏幕上不显示的作者署名等加 onlyPrint。默认让 .onlyPrint { display: none; },只在打印媒体里打开。[1]

**为什么:**屏幕导航占版面、打印时常变形;纸质页又常缺署名。

**怎么确认:**打印预览里页眉消失、署名出现;屏幕刷新后署名仍隐藏。

2、用 @media print 收紧字号

**做什么:**在样式表加入:

.onlyPrint {
  display: none;
}

@media print {
  .noPrint {
    display: none;
  }

  .onlyPrint {
    display: inline;
  }

  p,
  ol {
    font-size: 12pt;
  }

  h3, h4 {
    font-size: 13pt;
  }

  h2 {
    font-size: 14pt;
  }

  h1 {
    font-size: 16pt;
  }

  a {
    color: black !important;
  }
}

原帖对代码块还有边框与字号微调(.giallo / .giallo-l),可按站点 class 名改写。[1]

**为什么:**响应式 rem/vw 在纸上常显过大;约 12pt 正文字号较常见;链接默认蓝在灰度下发灰,改成黑色更易读。

**怎么确认:**预览中正文约一指宽可读、标题略大、链接不再发蓝发灰。

3、单独收拾代码块分页

**做什么:**打印时给 pre/code 加边框或略缩小字号;原帖承认代码块仍易「整块不跨页」,尚未有完美方案,可继续试 page-break-inside 等,效果因浏览器而异。[1]

**为什么:**等宽块在分页算法里往往被当成不可拆单元。

**怎么确认:**多页预览里长代码是否仍整页挤爆;不行就缩小字号或拆块。

4、整页走一遍打印预览清单

**做什么:**隐藏导航 → 字号 → 链接色 → 代码块 → 页眉页脚是否重复站点名。改完再预览一次。

**为什么:**打印 CSS 改动分散,漏一项就会「半成品上纸」。

**怎么确认:**预览从首页滚到文末,无巨大页眉、无断字乱码、关键段落完整。

注意事项

  • 这是个人站点实践,不是浏览器厂商规范教程;复杂 SPA、画布、付费墙页面可能需要更多规则。

  • 作者写明调打印样式花了「一上午」,且怀疑真正常打印网页的人很少——目标是给纯文本站多一种阅读介质,而非承诺流量或转化。[1]

说明:以下步骤基于 Brennen Puth 2026年10月24日博文公开 CSS,于 2026年10月26日核对;不同浏览器打印引擎表现可能不一致。

来源

[1] Websites Should Be Printable,Brennen Puth,2026年10月24日。

#CSS #打印 #media_print #前端 #教程 #网页排版

排序方式 :

成为第一条评论!

Nobody's responded to this post yet. Add your thoughts and get the conversation going.