【问题标题】:Applying border to div stops it from page-breaking将边框应用于 div 可防止其分页
【发布时间】:2020-06-26 18:54:17
【问题描述】:

我发现了一个我无法解释的怪癖。

我有一个这样的模板结构:

<printedpage>
    <div class="print-page">
        <other divs>...
    </div>
<printedpage>

@media print {
    .print-page{
        position: relative;
        display: block;
        break-before: page;
    }

    .print-page:first-child{
        break-before: avoid-page;
        break-after: avoid-page;
        break-inside: avoid!important;
    }
}

我已将上述 css 应用于 div。当有多个.print-page 时,所有内容都会中断并按预期打印,即每个.print-page div 打印一页。

问题是当只有一个.print-page 时,第二个“空”页面会附加到 pdf 预览的末尾。当我检查仿真模式时,我看到只有一个.print-page div

似乎解决这个问题的方法是为 :first-child 样式添加边框:

.print-page:first-child{
    break-before: avoid-page;
    break-after: avoid-page;
    break-inside: avoid !important;
    border: 1px solid white;
}

为什么添加边框似乎可以解决我打破第二页空白的问题?

【问题讨论】:

    标签: html css printing


    【解决方案1】:

    记得使用@media 规则来打印样式。

    @media print {
      .print-page:first-child{
        break-before: avoid-page;
        break-after: avoid-page;
        break-inside: avoid !important;
        border: 1px solid white;
      }
    }
    

    【讨论】:

    • 很抱歉没有说明 css 实际上是在一个大的 @media print{ } 块中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多