Хранить HTML-элемент на нескольких страницах при печати
У меня есть следующий HTML-код, который я бы хотел не разбить, когда занимал несколько страниц. Проблема в том, что если я использую разрывы страниц до или после, он поместит каждый элемент на свою собственную страницу. Другая проблема, с которой я сталкиваюсь, заключается в том, что если я устанавливаю display: block
в классе cell
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 ...}
Ответы
Ответ 1
EDIT: PROPER SOLUTION
Смотрите: http://www.w3schools.com/css/pr_print_pagebi.asp
Поэтому, если вы добавите следующее в свой CSS, он должен исправить вашу проблему:
@media print
{
div.pad { page-break-inside:avoid; }
}
К сожалению, это, скорее всего, будет работать в Opera. Тем не менее, есть также page-break-after:avoid
и page-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
OLD ANSWER:
Похоже, вы пытаетесь найти что-то на странице, которая не помещается на странице. Я бы попробовал добавить таблицу стилей с помощью media="print"
...
<link rel="stylesheet" href="css/print.css" type="text/css" media="print" charset="utf-8" />
..., который уменьшает размер шрифта, заполнение и т.д. всех этих элементов, чтобы вы могли переместить разрыв страницы перед этим разделом и поместили его на странице.