什么在打印时打破了我的页面?

时间:2014-09-02 07:08:01

标签: html5 printing page-break page-break-inside

我有一个提问者,我不知道为什么在打印时会在第一个问题之前创建一个休息时间。

Live demo (link)

enter image description here

1 个答案:

答案 0 :(得分:2)

我能够通过删除包含所有内容的字段集容器来解决此问题。让fieldset元素导致所有字段组合在一起,并且由于它们不能全部适合第一页,他们都被推到了第二页。通过删除fieldset元素,我能够让Firefox在第1页上打印与Chrome相同的前两个问题。

似乎这不是一个新的问题,Firefox和fieldset不能很好地协同工作,因为我发现了一张2008年的旧Bugzilla票,该票持续存在并且仍在2014年评论(link)

如果保留字段集很重要,我找到了其他人在此提出的解决方案(link)

<script type='text/javascript'>
    $(window).bind('beforeprint', function(){
        $('fieldset').each(
            function(item)
            {
                $(this).replaceWith($('<div class="fieldset">' + this.innerHTML + '</div>'));
            }
        )
    });
    $(window).bind('afterprint', function(){
        $('.fieldset').each(
            function(item)
            {
                $(this).replaceWith($('<fieldset>' + this.innerHTML + '</fieldset>'));
            }
        )
    });
</script>