Php mPDF:前分页符:避免;

Php mPDF:前分页符:避免;,php,mpdf,Php,Mpdf,如何使mPDF(版本7)在第一次h1时不分页符? 我已经在为使用AddPageByArray $mpdf->AddPageByArray([ “左边距”=>“15mm”, “右边距”=>“20mm”, “边距顶部”=>“15mm”, “边距底部”=>“15mm”, ]); $html=” h1{之前的分页符:始终;} h1:第一个子项{之前的分页符:避免;} 标题1”; 结果是一个空白的第二页,这是我试图避免的。第一个孩子的伪选择器在mPDF()中不受支持。相反,您需要在第一个H1上设置一个内

如何使mPDF(版本7)在第一次h1时不分页符?
我已经在为使用AddPageByArray

$mpdf->AddPageByArray([
“左边距”=>“15mm”,
“右边距”=>“20mm”,
“边距顶部”=>“15mm”,
“边距底部”=>“15mm”,
]);
$html=”
h1{之前的分页符:始终;}
h1:第一个子项{之前的分页符:避免;}
标题1”;

结果是一个空白的第二页,这是我试图避免的。

第一个孩子的伪选择器在mPDF()中不受支持。相反,您需要在第一个H1上设置一个内联样式(或者给它一个类并为第一个H1分配一个类)

$mpdf->AddPageByArray([
“左边距”=>“15mm”,
“右边距”=>“20mm”,
“边距顶部”=>“15mm”,
“边距底部”=>“15mm”,
]);
$html=”
h1{之前的分页符:始终;}
.no分页符{之前的分页符:inherit;}
标题1
标题1
新页标题1”;

从技术上讲,
inherit
在mPDF中不是有效的属性,但它会取消设置
始终
属性

我今天遇到了这个错误。在此之前,我找不到分页符的任何值,除了总是之外,我没有抛出mdf当前索引错误。我能让它工作的唯一方法是为我想要设置样式的元素的第一次出现创建一个类,然后为其余元素创建一个不同的类。首先,我使用SaaS做了以下工作(您可以使用直接的CSS,但是您必须在两个类之间复制样式,这有点混乱):

然后HTML看起来有点像这样:

<h1 class="heading--first">..</h1>
<h1 class="heading">..</h1>
<h1 class="heading">..</h1>
。。
..
..

这不是一个完全优雅的解决方案,但我找不到更好的解决方案,它可以工作。我希望这有帮助。

在这两种情况下,我都会得到一个错误:注意:第313行的/path/vendor/mpdf/mpdf/src/Tag/BlockTag.php中未定义的索引:current
$mpdf->AddPageByArray([
    'margin-left' => '15mm',
    'margin-right' => '20mm',
    'margin-top' => '15mm',
    'margin-bottom' => '15mm',
]);

$html = "
<style type='text/css'>
h1 { page-break-before:always; }
.no-page-break { page-break-before: inherit; }
</style>
<h1 style='page-break-before: inherit'>Heading 1</h1>
<h1 class='no-page-break'>Heading 1</h1>
<h1>Heading 1 on a new page</h1>";
%heading {
    /* add all of the heading styling here... */
}

.heading--first {
    @extend %heading;
}

.heading {
    @extend %heading;
    page-break-before: always;
}
<h1 class="heading--first">..</h1>
<h1 class="heading">..</h1>
<h1 class="heading">..</h1>