Формирование разрыва страницы при печати HTML: руководство
Быстрый ответ
Для управления разрывами страниц при печати HTML-документов можно использовать специфические CSS-свойства. Вам достаточно скопировать и вставить код, показанный ниже:
/* Добавляем разрыв перед элементом */
.pb-before { page-break-before: always; }
/* Добавляем разрыв после элемента */
.pb-after { page-break-after: always; }
/* Предотвращаем разрыв внутри элемента */
.pb-inside { page-break-inside: avoid; }
Внесите эти классы в свой HTML-код:
<div class="pb-before"></div> <!-- Новая страница начнётся тут -->
<div class="pb-after"></div> <!-- Следующий контент будет на новой странице -->
<div class="pb-inside"></div> <!-- Этот контент останется неделимым -->
Помните, что разрывы страниц активны только в режиме предварительного просмотра печати.
Тактические советы по работе с разрывами страниц
Рассмотрим некоторые особенности, влияющие на управление разрывами страниц:
Медиа-запросы для управления печатью
Стили для разрывов страниц должны находиться внутри медиа-запроса @media print
в CSS:
@media print {
/* Правила для печати */
.pb-before, .pb-after, .pb-inside { /* стили, определённые ранее */ }
}
Гармонизация работы с браузерами
Разрывы страниц работают по-разному в разных браузерах:
- Проведите тестирование в нескольких браузерах
- Обратите внимание на то, как разрывы взаимодействуют с плавающими элементами и
clear: both
- Изучите и применяйте новые свойства
break-after: page
для современного CSS
Работа с иерархией контента
В рамках работы с вложенностью и динамическим контентом могут быть актуальны следующие пункты:
- Примените правила разрывов страниц к блокам типа
div
,p
,table
- Соблюдайте целостность секций, используя
break-inside: avoid
- «Проведите генеральную репетицию» с
window.print()
для просмотра результата в реальном времени
Визуализация
Разрывы страниц, созданные с помощью CSS, можно представить как светофор:
🟢 Контент, подобно транспорту, беспрепятственно двигается по основной «дороге» документа.
🚦 Контент встречает сигнал на разрыв страницы (CSS: `page-break-before: always;`), и движение прекращается.
🔴 На «красном свете» контент ждёт начала новой страницы.
Таким образом, с помощью правил CSS можно точно регулировать переходы между страницами.
Создание идеального печатного оформления
Чтобы оптимизировать печатную версию ваших веб-страниц:
- Учтите белые пространства, чтобы предотвратить появление заголовков в конце страницы
- Адаптируйте размеры шрифтов и отступы
- Настройте отображение ссылок для печати, показывая полные URL-адреса
Использование возможностей CSS последнего поколения
Ознакомьтесь с новыми свойствами CSS break-before
и break-after
, чтобы быть готовым к будущему:
/* Современные стили для разрыва страниц */
.element {
break-before: page; /* "Ворота" для контента, который прибывает */
break-after: page; /* Направляет следующий контент */
}
Эти стандарты помогают вашему сайту оставаться актуальным.
Устранение распространенных проблем
Будьте готовы к возможным проблемам:
- Изображения, таблицы и блоки, которые не следуют вашим правилам
- Адаптивный контент, который требует корректировки для печати
- Управление колонтитулами с помощью
@page
Полезные материалы
- page-break-before – MDN — Подробная информация по разрывам страниц перед элементом.
- page-break-after – MDN — Рекомендации по разрывам после элемента.
- page-break | CSS-Tricks — Энциклопедические знания о разрывах страниц.
- CSS Design: Going to Print – A List Apart — Создание стилей для печати.
- Designing For Print With CSS — Smashing Magazine — Подходы и идеи для стилей, предназначенных для печати.
- How to Create Printer-friendly Pages with CSS — SitePoint — Руководство по созданию страниц, дружественных к печати.
- @page – MDN — Подробности об управлении колонтитулами с помощью правила @page.