css - Chrome 无法识别“break-after: Avoid”
问题描述
我正在使用带有 Chrome 79.0.3945.130 的 Windows 10。我有包含<h3>
标签的 HTML 文档。打印时,我想避免在这些标签之后立即出现分页符。
防止分页符的自然方法似乎是使用 CSSbreak–after
属性。而且我发现它可以在 Microsoft Edge 中使用。但我无法让它在 Chrome 或当前基于 Chromium 的 Edge 版本中运行。这是一个最小的例子:
<html>
<head><title>Getting CSS page breaks to work</title></head>
<body>
<style>
h3 { break-after: avoid; }
.tall {
height: 9.5in;
background-color: blue;
}
</style>
<div class="tall"></div>
<h3>Section heading</h3>
<p>Lorem ipsum dolor.</p>
</body>
</html>
当我在旧版本的 Edge (~v44) 中打印该文档时,它会按原样打印。但是当我在 Chrome 或当前版本的 Edgs (v83) 中打印时,<h3>
页眉出现在页面底部,以下<p>
文本出现在下一页顶部。打破和之间的页面<h3>
是<p>
我想要防止的。
我可以通过将<h3>
和<p>
标签都包装在一个 div 中并break–inside: avoid
为该 div 设置来解决这个问题。但是这个解决方案并不令人满意:它是临时的,需要我首先确定所有出现不适当中断的情况。
我已经尝试了这里给出的示例的许多变体。例如,我尝试将 break-* 属性与::after
选择器一起设置,如h3::after { break-after: avoid; }
. 但是我还没有成功地防止分页符。
还有一些相关的帖子,例如:
但是那里给出的建议对上面给出的例子没有帮助。
我还可以做些什么?
解决方案
推荐阅读
- vue.js - 带有 3rd 方 Web API 令牌管理的 VueJS
- angular - 如何在 angluar11 中使用 lottie-web?
- android - Android 10及以上系统如何获取共享存储文件夹的文件路径?
- c - 我的 C 代码有问题。它返回非零值,我不知道为什么
- javascript - 如何在 JavaScript 的构造函数中使用模板文字
- linux - qmake:没有这样的文件或目录(TI 工具链)
- python - Python 使用 os ping 很多站点
- windows - 有没有办法在 desktop.ini 文件中使用 IconResource 路径中的文件夹名称?
- r-corrplot - corrplot 中的 Potentiel 错误;当 insig = "blank" 时相关系数不可见
- rest - 如果唯一可用的过滤器是“afterDate”过滤器,我应该使用什么策略逐片获取 API 的数据?