css - CSS 列填充自动忽略打印的分页符
问题描述
column-fill:auto 属性的工作原理是先填充一整列,然后再转到下一列。
.two-column {
column-count: 2;
column-fill: auto;
}
Chrome 仅在屏幕上正确执行此操作,但在打印和必须处理分页符时不会:
A C
B D
---- page break
E G
F H
---- page break
I J <-- two columns
但是,列表的剩余部分进入最后一页,布局恢复为“平衡”样式。至少,Chrome 确实,FireFox,正确显示它:
A C
B D
---- page break
E G
F H
---- page break
I
J
这是一个(已知的)Chrome 错误吗?有什么解决方法吗?
示例:https ://codepen.io/Stu42/pen/PoqYYWo
更新:正如 Juan Marco 所指出的,这很可能是一个 Chrome 错误。如此处所述:https ://github.com/w3c/csswg-drafts/issues/4036 。我认为,任何对官方错误或状态的明确引用,或者更好的解决方法都可以算作一个答案。
解决方案
对于column-fill
MDN 说:
请注意,由于规范中未解决的问题,跨浏览器的列填充存在一些互操作性问题和错误。
每当您计划使用实验性功能或不受支持的功能时,请检查caniuse以获取信息。然后使用Autoprefixer获取必要的供应商前缀(如果有)。
例如,对于样式规则:
.two-column {
column-count: 2;
column-gap: 1cm;
column-fill: auto;
background-color: #faa;
}
Autoprefixer 生成了这个:
.two-column {
-webkit-column-count: 2;
-moz-column-count: 2;
column-count: 2;
-webkit-column-gap: 1cm;
-moz-column-gap: 1cm;
column-gap: 1cm;
-webkit-column-fill: auto;
-moz-column-fill: auto;
column-fill: auto;
background-color: #faa;
}
推荐阅读
- ios - Jenkins SonarQube 链接不可点击
- mysql - codeigniter 上传图片并将路径插入数据库
- python - 为什么 multiprocessing.Pool 关闭/不跨进程共享 SQL 连接?
- laravel - 如何在laravel中渲染所有相关数据
- sql - 从每个月的打开和关闭日期获取任务计数的差异
- indexeddb - IndexedDB 是否支持部分更新?
- arrays - 在 Excel 中将 Countif 添加到数组公式(小计)
- java - Java中的MySql表监听器
- c# - LINQ 查询、分组依据和多个总和
- lombok - 是否可以排除 lombok 功能