Разбивка на страницы

В CSS2 предусмотрены некоторые дополнительные стили разрывов страниц, т. е. он определяет набор схем поведения, допустимых и «наилучших» для организации разрывов страниц. Эти схемы определяют, как агенты пользователя должны обрабатывать разрывы страниц в различных обстоятельствах. На самом деле разрывы на страницах допускаются в основном в двух местах. Во-первых, между двумя блочными элементами. Если разрыв страницы оказывается между двумя блочными элементами, свойству margin-bottom элемента, находящегося перед разрывом страницы, присваивается значение 0, как и свойству margin-top элемента, располагающегося после разрыва. Кроме того, есть два правила, позволяющие разрыву страницы располагаться между двумя блоками элементов:

• Если свойство page-break-after первого элемента или свойство page-break-before второго элемента имеет значения always, left или right. Это выполняется независимо от значения данного свойства для другого элемента, даже если это avoid. (Это принудительный (forced) разрыв.)
• Если свойство page-break-after первого элемента имеет значение auto, такое же значение имеет свойство page-break-before второго элемента, и у них нет общего элемента-предка, свойство page-break-inside которого имеет значение, отличное от avoid.


Принудительные разрывы страниц представлены заштрихованными квадратами, а возможные (необязательные) разрывы – пустыми квадратами.

Во-вторых, допускаются разрывы страниц между двумя строками, расположенными внутри блочного элемента. Здесь также есть пара правил:

• Разрыв страницы может находиться между двумя строками блока, только если количество строк между началом элемента и строкой, предшествующей разрыву страницы, больше значения свойства orphans элемента. Аналогично разрыв страницы может быть помещен только там, где количество строк между строкой, расположенной после разрыва страницы, и концом элемента больше значения свойства widows.
• Разрыв страницы может быть помещен между строками, если значение свойства page-break-inside элемента отличается от avoid. В обоих случаях второе из двух правил, управляющих размещением разрыва страницы, игнорируется, если нельзя вставить разрыв так, чтобы он удовлетворял всем правилам. Таким образом, если для элемента было задано page-break-inside: avoid, но он выходит за пределы страницы, разрыв разрешен внутри элемента, между двумя строками. Иначе говоря, второе правило размещения разрыва страницы между строками игнорируется

Если даже игнорирование второго правила каждой пары правил не обеспечивает приемлемого размещения разрыва страницы, можно игнорировать и первое правило.


В таких случаях агент пользователя, скорее всего, проигнорирует все значения свойств разрыва страниц и обработает их так, как будто все они имеют значение auto, хотя этот подход не определен (или не оговорен) спецификацией CSS. Кроме правил, описанных выше, CSS2 определяет ряд «наилучших» схем поведения при разрыве страниц:

• Вставлять разрывы как можно реже.
• Делать высоту всех страниц, не оканчивающихся принудительным разрывом, примерно одинаковой.
• Избегать разрывов внутри блока, имеющего рамку.
• Избегать разрывов внутри таблицы.
• Избегать разрывов внутри перемещаемого элемента.

Эти рекомендации не подлежат обязательному выполнению агентами пользователя, но они предлагают логичное руководство, призванноеобеспечить идеальные схемы поведения при размещении разрывов страниц.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела CSS на эту тему:
Воспроизведение речи
Выбор типов страниц
Звуковое воспроизведение заголовков таблиц
Звуковое сопровождение
Изменение высоты

Вернуться в раздел: CSS / 14. Неэкранные устройства