gpt4 book ai didi

html - 防止 HTML 元素在打印时跨越多个页面

转载 作者:技术小花猫 更新时间:2023-10-29 12:01:32 26 4
gpt4 key购买 nike

我有以下 HTML,我希望在跨多个页面时不被打断。问题是如果我在之前或之后使用分页符,它会将每个元素放在它自己的页面上。我遇到的另一个问题是,如果我设置 display: blockcell CSS 类或 wrap类,DIV 或 LI 仍然被分解。我还有一个打印媒体 CSS 文件和一个用于屏幕的 CSS 文件。我想保留 <li class="cell">元素及其内容不会被分解。

        <div class="pad">
<h1 style="text-align: center; margin: 10px 0">

Work Orders for Jan 05, 2011
</h1>
<p class="printHidden">
<a href="/orders/print-all/date/2011-01-05">Print All Work Orders</a>
</p>
<ul class="workorders">
<li class="cell">
<div class="wrap" id="146">

<div class="scheduled">
<p>
<strong>Work Order:</strong> <a href="/orders/view/work-order/146">158801</a>
</p>
<p>
<strong>Client:</strong> Client Name
</p><br>

<b>Resources</b>
<ul>
<li>
<a href="/resources/view/resource-id/5" id="Person-5">Mikell McLaindon</a>
</li>
<li>
<a href="/resources/view/resource-id/9" id="Person-9">Jose Copper</a>

</li>
</ul>
</div>
<div class="unschedule printHidden">
<h1 style="text-align: center; margin: 10px 0 10px; font-size: 12px; font-weight: bold;">
Unschedule Resource for 15880-PW
</h1>
</div>
</div>
</li>
{... removed for brevity ...}

最佳答案

编辑:正确的解决方案

参见:http://www.w3schools.com/css/pr_print_pagebi.asp因此,如果您将以下内容添加到您的 CSS,它应该可以解决您的问题:

@media print
{
div.pad { page-break-inside:avoid; }
}

所有主要的桌面浏览器现在都支持它。

不过,还有page-break-after:avoidpage-break-before:avoid您可以将其添加到 .pad 中的每个元素类以便在一些旧版本的浏览器中产生相同的结果。

@media print
{
div.pad * {
page-break-after:avoid;
page-break-before:avoid;
}
}

http://www.w3schools.com/Css/pr_print_pagebb.asp

http://www.w3schools.com/css/pr_print_pageba.asp

旧答案:

听起来您正试图将页面上放不下的内容放在页面上。我会尝试使用 media="print" 添加样式表...

<link rel="stylesheet" href="css/print.css" type="text/css" media="print" charset="utf-8" />

...减少所有这些元素的字体大小、填充等,以便您可以在该部分之前放置分页符并使其适合页面。

关于html - 防止 HTML 元素在打印时跨越多个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4730216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com