如何使网页的打印视图缩放以始终适合单个物理页面?

How do I make the printed view of a web page scale to always fit on a single physical page?

我有一个网页,无论有多少内容,我都想占用一个打印页面。具体来说,我希望各种测量值(尤其是字体大小)根据需要按比例放大或缩小以填充打印页面。

我已经在使用 @media print 查询来设置打印所需的样式。我以为我的一切都令人满意。这是旧 "it looks right on my machine" 的情况。在我的笔记本电脑 Linux 上从 Firefox 打印到我的特定打印机看起来很完美。但是前几天,一位朋友用她的 computer/operating system/browser/printer 组合打印了同一页,但文字偏小,难以阅读。此外,页面底部有大约 1/4 到 1/5 的空白。

在其他页面(不用于打印)上,我玩过 vwvmin 之类的东西,试图让元素尽可能大,同时完全适合屏幕。但总有一些 window 几何形状导致页面与我的意图冲突。

有没有一种方法可以可靠地编码我在 CSS 中的意图,即我希望内容缩放到一页的大小?

简短的回答是您无法'always'让它发挥作用。长话短说,一旦你添加任何接近纯文本和纯字体格式的格式,你就会 运行 变得复杂,需要成为 CSS 霸主。你的句子非常准确地描述了现实:

there's always some window geometry that causes the page to clash with my intentions.

如果你真的需要你的网页很好地适合一页,唯一 100% 成功率的选择是创建一个打印文件:手动将你的网页转换成一个漂亮的文档Microsoft Word、Pages for mac os 或 InDesign,并将其导出为您在网页上提供的 PDF。