【发布时间】:2025-12-10 15:15:01
【问题描述】:
在打印时(或者,一般来说,在分页媒体上显示文档),是否可以重排文档元素,以便当某些元素(例如图像)因为不适合可用空间而转移到下一页时实际页面,后面的元素会被移动到实际页面的剩余空间吗?
我正在尝试实现与LaTeX Floats 类似(或相同)的效果,但仅使用 CSS。
为了说明这一点,假设我们有这种情况:
Page 1 | Paragraph A (...) |
| Paragraph B (...) |
| _________________ |
| | Top of image A | |
|_|_________________|_|
---- page break -----
_____________________
Page 2 | | Rest of image A | |
| |_________________| |
| |
| Paragraph C (...) |
| Paragraph D (...) |
| ... |
|_____________________|
使用一些基本的 CSS(参见 this question),实现这一点没有问题:
Page 1 | Paragraph A (...) |
| Paragraph B (...) |
| |
| |
|_____________________|
---- page break -----
_____________________
Page 2 | _________________ |
| | Image A (whole) | |
| | | |
| |_________________| |
| |
| Paragraph C (...) |
| Paragraph D (...) |
| ... |
|_____________________|
但我真正需要的是这样的:
Page 1 | Paragraph A (...) |
| Paragraph B (...) |
| Paragraph C (...) |
| Paragraph D (...) |
|_____________________|
---- page break -----
_____________________
Page 2 | _________________ |
| | Image A (whole) | |
| | | |
| |_________________| |
| ... |
|_____________________|
所以,基本上,我只想用image A 之后的元素填充实际页面上剩余的所有空间(当然,只有它们适合它)。
我正在做一些 CSS3 研究,想看看 Office 编辑器是否可以完全被 CSS 样式取代,所以我不需要支持该解决方案(即目前在某些浏览器中实现)。我只想知道它是否包含在任何 CSS 模块或构造中(即使它只是工作草案),所以我可以假设浏览器将来会支持它。
我已经在里面搜索过了
- CSS3 分页媒体,
- CSS3 区域 和
- 为分页媒体生成的 CSS3 内容
规格并没有发现任何东西,但我仍然有可能只是忽略了一些东西(或者根本不理解它),所以在谷歌搜索了两天之后,我认为是时候在这里问了 :-)
编辑: 再次说明:我不需要任何浏览器都支持该解决方案 现在,我需要知道是否有允许这样做的标准或规范(如果是,如何)。
【问题讨论】:
-
你也用 CSS 做所有的按钮吗?还是图片?
-
好吧,我没有——用 CSS 生成按钮是不可能的,对于图像你可以使用background-image property,但这不是你通常想要的。事实上,我假设 HTML5 作为基本文档格式并在其上应用 CSS,试图实现 Office 编辑器中可能的一切。
标签: css printing-web-page css-paged-media