Примечание. Добавление объявлений в псевдоклассы :left или :right не указывает, выходит ли документ на принтер одно- или двухсторонним (это находится вне рамок данной спецификации).
Примечание. В будущих версиях CSS возможно появление других псевдоклассов страницы.
При форматировании содержимого модели страницы, часть содержимого может выйти за границы страничного бокса. Например, элемент, чьё свойство 'white-space' имеет значение 'pre', может генерировать бокс, который окажется шире страничного бокса. Также, если боксы позиционированы абсолютно, они могут оканчиваться в "несогласованном" месте. Например, изображения могут быть размещены у края страничного бокса или на 100,000 дюймов ниже страничного бокса.
Спецификация точного форматирования таких элементов находится вне пределов рассмотрения данного документа. Однако мы рекомендуем, чтобы авторы и ПА учитывали следующие общие принципы, касающиеся содержимого вне страничного бокса:
[x]. Содержимое должно допускаться немного позади страничного бокса, чтобы страницы слегка "сочились".
[x]. ПА должны исключить генерирование большого количества пустых страничных боксов для позиционирования элементов (например, Вы не захотите печатать 100 пустых страниц). Заметьте, однако, что генерирование небольшого количества пустых страничных боксов может понадобиться для значений 'left' и 'right' в 'page-break-before' и 'page-break-after'.
[x]. Авторы не должны позиционировать элементы в несогласованных местах в целях исключения их вывода. Вместо этого нужно:
[x]. Чтобы в целом уменьшить генерацию боксов, установить свойство 'display' в 'none'.
[x]. Чтобы сделать бокс невидимым, использовать свойство 'visibility'.
[x]. ПА могут обрабатывать боксы, расположенные вне страничного бокса, разными способами, в том числе - отбрасывая их или создавая для них страничные боксы в конце документа.
В данном разделе разъясняется форматирование страниц в CSS2. Пять свойств указывают, где ПА может или должен разрывать страницы и на какой странице (левой или правой) должно выводиться последующее содержимое. Каждый разрыв страницы заканчивает вывод в текущем страничном боксе и вызывает размещение оставшихся частей дерева документа в новом страничном боксе.
'page-break-before'
Значение: auto | always | avoid | left | right | inherit
Начальное: auto
Применяется: к элементам уровня блока
Наследуется: нет
Процентное: N/A
Носитель: визуальный, страничный
'page-break-after'
Значение: auto | always | avoid | left | right | inherit
Начальное: auto
Применяется: к элементам уровня блока
Наследуется: нет
Процентное: N/A
Media: визуальный, страничный
'page-break-inside'
Значение: avoid | auto | inherit
Начальное: auto
Применяется: к элементам уровня блока
Наследуется: да
Процентное: N/A
Media: визуальный, страничный
Значения этих свойств имеют следующий смысл:
auto
Ни форсирует, ни запрещает разрыв страницы перед (после, внутри) генерируемого бокса.
always
Всегда форсирует разрыв страницы перед (после, внутри) генерируемого бокса.
avoid
Исключает разрыв страницы перед (после, внутри) генерируемого бокса.
left
Форсирует один или два разрыва страницы перед (после, внутри) генерируемого бокса, так что следующая страница форматируется как левая страница.
right
Форсирует один или два разрыва страницы перед (после, внутри) генерируемого бокса, так что следующая страница форматируется как правая страница.
Потенциально размещение разрыва страницы находится под влиянием свойства 'page-break-inside' родительского элемента, свойства 'page-break-after' предыдущего элемента и свойства 'page-break-before' последующего элемента. Если эти свойства имеют значения, отличные от 'auto', то значения 'always', 'left' и 'right' получают преимущество перед 'avoid'.
См. в разделе о допустимых разрывах страниц точные правила того, как эти свойства могут форсировать или подавлять разрыв страницы.
'page'
Значение: <identifier> | auto
Начальное: auto
Применяется: к элементам уровня блока
Наследуется: да
Процентное: N/A
Носитель: визуальный, страничный
Свойство 'page' можно использовать для спецификации определённого типа страницы, на которой элемент должен быть выведен.
Все таблицы будут размещены на правой стороне страницы с ориентацией landscape:
@page rotated {size: landscape}
TABLE {page: rotated; page-break-before: right}
Свойство 'page' работает так: если бокс блока с инлайн-содержимым имеет свойство 'page', отличное от аналогичного свойства предшествующего бокса блока с инлайн-содержимым, тогда один или два разрыва страницы вставляются между ними, и боксы после разрыва отображаются в страничном боксе именованного типа. См. ниже "Форсированные разрывы страниц".
В этом примере две таблицы отображаются на landscape-страницах (или на одной странице, если входят), и тип страницы "narrow" вообще не используется, вопреки установкам в DIV:
@page narrow {size: 9cm 18cm}
@page rotated {size: landscape}
DIV {page: narrow}
TABLE {page: rotated}
с этим документом:
<DIV>
<TABLE>...</TABLE>
<TABLE>...</TABLE>
</DIV>
'orphans'
Значение: <integer> | inherit
Начальное: 2
Применяется: к элементам уровня блока
Наследуется: да
Процентное: N/A
Носитель: визуальный, страничный
'widows'
Значение: <integer> | inherit
Начальное: 2
Применяется: к элементам уровня блока
Наследуется: да
Процентное: N/A
Носитель: визуальный, страничный
Свойство 'orphans' специфицирует минимальное количество строк параграфа, которые должны оставаться внизу страницы. Свойство 'widows' специфицирует минимальное количество строк параграфа, которые должны оставаться вверху страницы. Примеры того, как они используются для управления разрывами страниц, даны ниже.
Информацию о форматировании параграфов см. в разделе Строчные боксы.
При нормальном обтекании разрывы страниц могут появляться в следующих местах:
1На вертикальном поле между боксами блока. Если разрыв страницы появляется здесь, вычисленные значения соответствующих свойств 'margin-top' и 'margin-bottom' установлены в '0'.
2Между строчными боксами внутри бокса блока.
Эти разрывы являются субъектами для следующих правил:
[x]. Правило A: Разрывы из пункта (1) допускаются, только если свойства 'page-break-after' и 'page-break-before' всех элементов, генерирующих боксы у данного поля, разрешают это, что имеет место, когда по меньшей мере одно из них (свойств) имеет значение 'always', 'left' или 'right', или когда все они - 'auto'.