
在打印网页内容时,控制分页位置非常重要,尤其是在生成报告、发票或文档类页面时。HTML本身没有“分页符”标签,但可以通过CSS的page-break相关属性来控制打印时的分页行为。
使用CSS控制打印分页
以下CSS属性专门用于控制打印时的分页效果,不会影响屏幕显示,只在打印预览或实际打印时生效。
1. page-break-before
控制元素前是否插入分页符。
常用值:
- auto:默认值,不强制分页
- always:始终在元素前分页
- avoid:尽量避免在此处分页
2. page-break-after
控制元素后是否插入分页符。
常用值与page-break-before相同。
立即学习“前端免费学习笔记(深入)”;
3. page-break-inside
控制元素内部是否允许分页。
常用于防止块级内容被拆分到两页。
- auto:允许分页
- avoid:避免在元素内部分页(适合表格、段落等)
实际应用示例
假设你有一份多章节的文档,希望每章从新的一页开始打印:
第一章:介绍
这里是第一章的内容...
第二章:方法
这里是第二章的内容...
添加CSS样式:
@media print {
.chapter {
page-break-before: always; /* 每章从新页开始 */
}
table, img, div {
page-break-inside: avoid; / 避免表格或图片被截断 /
}
/ 避免小段文字孤行在页尾 /
p {
orphans: 3;
widows: 3;
}
}
注意事项与兼容性
CSS分页属性主要在@media print中使用,确保不影响网页正常浏览。
- 现代浏览器(Chrome、Edge、Firefox)对这些属性支持良好
- Safari在某些版本中支持较弱,建议测试打印预览
- 不要依赖
这类非标准写法 -
page-break-inside: avoid对table和div特别有用,防止内容断裂
替代方案:使用 break-after / break-before (更现代)
W3C推荐使用新的break-after、break-before属性,它们是page-break-*的升级版,支持更多场景(如flex、grid布局):
.chapter {
break-before: page;
}
.no-break {
break-inside: avoid;
}
虽然page-break-*仍广泛使用,但建议逐步过渡到break-*语法以获得更好兼容性。
基本上就这些。通过合理使用CSS打印分页控制,可以大幅提升打印输出的专业性和可读性。











