哪些浏览器支持使用CSS和page-break-inside元素进行分页操作?
我正在尝试使用page-break-inside CSS指令,该指令的类将添加到div标签或者表标签(我认为这可能仅适用于块元素,在这种情况下,它必须是桌子)。
我已经尝试了所有应该准确描述如何执行此操作的教程,但是没有任何效果。这是浏览器支持的问题还是有人真正可以使用此功能,CSS的确切内容如下所示:
@media print { .noPageBreak { page-break-inside : avoid; } }
解决方案
Safari 1.3 +,Opera 9.2 +,Konquerer和IE8都至少在一定程度上支持它。
Firefox显然仍然没有。
I'm trying to use the page-break-inside CSS directive, the class of which is to be attached to a div tag or a table tag (I think this may only work on block elements, in which case it would have to be the table).
首先,无需猜测。只要看一下规范,我们就会发现它确实仅适用于块级元素。
其次,<div>
元素通常是块级元素,因此将page-break-inside
应用于<div>
元素没有问题。
最后,我们无需将其包装在@ media
中。仅在要将与媒体无关的规则仅应用于一种介质时才需要使用@media,例如,如果仅对一种介质使用display:block。在这种情况下,我们无需将这些规则隐藏在其他媒体上,因为它们反正只会应用于分页媒体。
Safari 1.3及更高版本支持page-break-inside
。
Konqueror也是如此。
Safari 1.3及更高版本(不了解4)不支持page-break-inside(尝试一下,或者在此处查看:http://reference.sitepoint.com/css/page-break-inside)。 Firefox 3或者IE7(都不知道8)都没有。
从实际意义上讲,对此属性的支持太差劲了,在这一点上完全不使用它是没有意义的。即使10%的访问者都拥有可以支持此功能的浏览器,我们也很幸运。
我使用的解决方案是添加
page-break-after:always
到某些div,或者在我们要休息的地方添加" page-breaker" div。我知道这很麻烦,因为它不能完全满足要求,并导致内容无法到达打印页面的底部,但是不幸的是,没有更好的解决方案(请证明我错了!)。
另一种方法是创建一个样式表,该样式表将删除所有无关的元素(" display:none"),并使主要内容流入一个主列。基本上,将其变成单列纯文本文档。
最后,在为打印机设置样式时避免使用浮点和列,这会使IE(和FF)古怪。
从初步搜索中,很难找到有关浏览器支持的最新统计信息,但似乎Firefox 4beta6支持该功能,而Chrome 7不支持。 Chrome还会在一行文本的中途中断页面,因此文本的一部分显示在一页上,而一部分显示在下一页上。缺乏个性的人缺乏对细节的关注,但我想Google和Apple都不关心打印东西。
Firefox 4还为打印内容添加了一些漂亮的页眉和页脚,包括url,页面标题,网站标题,页数和时间。好的。
- Firefox从2010-11-30开始不支持此功能,因此在Firefox 4中将不支持。
- IE8确实支持page-break-inside:避免-但是当我在IE9上尝试过这种方法时,它在避免分页符方面并不是很成功(这可能是回归,或者IE8也只能在非常简单的情况下避免分页符) )。
- AFAIK在任何Webkit浏览器中均不起作用;当然不是铬。
- 它实际上可以在Opera中运行,甚至可以在实际站点上运行。