2.33. CSS-фрагментация
Модуль CSS Fragmentation описывает модель фрагментации, которая разбивает содержимое HTML или XML-документа на страницы, колонки или регионы, помещая их в контейнеры фрагментации. Этот модуль заменяет и расширяет способы разбиения на страницы, определенные в Paged media и Paged Media Module Level 3.
- Содержание:
- 1. Управление разрывами
- 1.1. Разрывы между блоками: свойства break-before и break-after
- 1.2. Разрывы внутри блока: свойство break-inside
- 1.3. Разрывы между строками: свойства orphans и widows
- 2. Границы и фон фрагментов: свойство box-decoration-break
1. Управление разрывами
Поддержка браузерами
IE: 10
Edge: 12
Firefox: 65, колонки только при печати
Chrome: 50
Safari: 10, только при печати страниц
Opera: 37
iOS Safari: 10, только при печати страниц
Chrome for Android: 98
Samsung Internet: 5
Возможность принудительного разрыва страницы, колонки или региона между двумя блоками находится под влиянием свойства break-inside содержащего блока, свойства break-after предыдущего элемента и свойства break-before следующего элемента.
Возможность разрыва страницы, колонки или региона между строками находится под влиянием свойств break-inside, widows и orphans содержащего блока.
Принудительный разрыв имеет приоритет над любыми ограничениями на разрыв, действующими в этой точке. В случае принудительных разрывов страниц также можно указать, на какой странице (левой или правой) должен возобновиться последующий контент.
Когда несколько контекстов форматирования размещаются параллельно друг другу, фрагментация выполняется независимо в каждом контексте форматирования. Например, если элемент плавающий, то принудительный разрыв внутри плавающего элемента не повлияет на содержимое вне плавающего элемента (за исключением того, что это может увеличить высоту плавающего элемента).
1.1. Разрывы между блоками: свойства break-before и break-after
Свойства break-before и break-after определяют поведение разрыва страницы при печати или распределение содержимого по колонкам до и после элемента, к которому они применяются.
В CSS2.1 свойства page-break-before и page-break-after определены для управления разрывами страниц. Свойства break-before и break-after расширяют их.
Поскольку разрывы разрешены только между элементами одного уровня, то значения разрыва, применяемые к дочерним элементам в начале/конце родительского, распространяются на родительский элемент там, где они могут вступить в силу.
Свойства break-before и break-after применяются к элементам уровня блока, элементам сетки, flex-элементам, группам строк таблицы и строкам таблицы (с ограничениями). Не применяются к элементам с абсолютным позиционированием.
Свойства не наследуются.
break-before | |
---|---|
Общие значения | |
auto | Разрыв не запрещается, но и принудительно не вставляется. Значение по умолчанию. |
avoid | Предотвращает вставку разрыва перед элементом. |
initial | Устанавливает значение свойства в значение по умолчанию. |
inherit | Наследует значение свойства от родительского элемента. |
Разрыв страниц — эти значения действуют только в контекстах с разбивкой на страницы. | |
avoid-page | Предотвращает разрыв страницы перед элементом. |
page | Принудительная вставка разрыва страницы перед элементом. |
left | Вставка одного или двух разрывов страницы перед элементом, чтобы следующая страница была отформатирована как левая страница. |
right | Вставка одного или двух разрывов страницы перед элементом, чтобы следующая страница была отформатирована как правая. |
recto | Вставка одного или двух разрывов страницы перед элементом, чтобы следующая страница была отформатирована либо как левая, либо как правая, в зависимости от того, что является вторым (в соответствии с последовательностью страниц) в развороте страницы. |
verso | Вставка одного или двух разрывов страницы перед элементом, чтобы следующая страница была отформатирована либо как левая, либо как правая, в зависимости от того, что будет первым (в соответствии с последовательностью страниц) в развороте страницы. |
Разрыв колонок — эти значения действуют только для многоколоночного макета. | |
avoid-column | Предотвращает вставку разрыва колонки перед элементом. |
column | Принудительная вставка разрыва колонки перед элементом. |
Синтаксис
break-before: auto;
break-before: avoid;
break-before: avoid-page;
break-before: page;
break-before: left;
break-before: right;
break-before: recto;
break-before: verso;
break-before: avoid-column;
break-before: column;
break-before: inherit;
break-before: initial;
break-after | |
---|---|
Общие значения | |
auto | Разрыв не запрещается, но и принудительно не вставляется. Значение по умолчанию. |
avoid | Предотвращает вставку разрыва после элемента. |
initial | Устанавливает значение свойства в значение по умолчанию. |
inherit | Наследует значение свойства от родительского элемента. |
Разрыв страниц — эти значения действуют только в контекстах с разбивкой на страницы. | |
avoid-page | Предотвращает разрыв страницы после элемента. |
page | Принудительная вставка разрыва страницы после элемента. |
left | Вставка одного или двух разрывов страницы после элемента, чтобы следующая страница была отформатирована как левая страница. |
right | Вставка одного или двух разрывов страницы после элемента, чтобы следующая страница была отформатирована как правая. |
recto | Вставка одного или двух разрывов страницы после элемента, чтобы следующая страница была отформатирована либо как левая, либо как правая, в зависимости от того, что является вторым (в соответствии с последовательностью страниц) в развороте страницы. |
verso | Вставка одного или двух разрывов страницы после элемента, чтобы следующая страница была отформатирована либо как левая, либо как правая, в зависимости от того, что будет первым (в соответствии с последовательностью страниц) в развороте страницы. |
Разрыв колонок — эти значения действуют только для многоколоночного макета. | |
avoid-column | Предотвращает вставку разрыва колонки после элемента. |
column | Принудительная вставка разрыва колонки после элемента. |
Синтаксис
break-after: auto;
break-after: avoid;
break-after: avoid-page;
break-after: page;
break-after: left;
break-after: right;
break-after: recto;
break-after: verso;
break-after: avoid-column;
break-after: column;
break-after: inherit;
break-after: initial;
1.2. Разрывы внутри блока: свойство break-inside
Свойство break-inside определяет поведение разрыва страницы или колонки в блоке элемента.
Применяется ко всем элементам, кроме элементов уровня строки, внутренних блоков <ruby>, блоков столбцов таблицы, блоков групп столбцов таблицы, блоков с абсолютным позиционированием.
Свойство не наследуется.
break-inside | |
---|---|
Значения: | |
auto | Отсутствие дополнительных ограничений на разрыв внутри элемента. Значение по умолчанию. |
avoid | Предотвращает разрывы внутри элемента. |
avoid-page | Предотвращает разрывы страницы внутри элемента. |
avoid-column | Предотвращает разрывы страницы внутри колонки. |
initial | Устанавливает значение свойства в значение по умолчанию. |
inherit | Наследует значение свойства от родительского элемента. |
Синтаксис
break-inside: auto;
break-inside: avoid;
break-inside: avoid-page;
break-inside: avoid-column;
break-inside: inherit;
break-inside: initial;
1.3. Разрывы между строками: свойства orphans и widows
Поддержка браузерами
IE: 8
Edge: 12
Firefox: —
Chrome: 25
Safari: 7
Opera: 10
iOS Safari: 7
Chrome for Android: 98
Samsung Internet: 4
Свойство orphans задает минимальное количество строк в элементе уровня блока, которые должны остаться в нижней части фрагмента до разрыва страницы или колонки.
Свойство widows задает минимальное количество строк в элементе уровня блока, которые должны остаться в верхней части фрагмента после разрыва страницы или колонки.
Свойства применяются к элементам уровня блока. В качестве значений допускаются только положительные целые числа. Значение по умолчанию 2. Если блок содержит меньше строк, чем указано orphans и widows, то все строки в блоке должны храниться вместе.
Свойства наследуются.
Синтаксис
orphans: 2;
orphans: 3;
orphans: inherit;
orphans: initial;
widows: 2;
widows: 3;
widows: inherit;
widows: initial;
2. Границы и фон фрагментов: свойство box-decoration-break
Поддержка браузерами
IE: —
Edge: 79 -webkit- *
Firefox: 32
Chrome: 22 -webkit- *
Safari: 6.1 -webkit- *
Opera: 11.5, 15 -webkit- *
iOS Safari: 7 -webkit- *
Chrome for Android: 98 -webkit- *
Samsung Internet: 4 -webkit- *
*Частичная поддержка, означает, что данное свойство работает только для элементов уровня строки.
Свойство box-decoration-break управляет оформлением фрагментов при их разрыве внутри блока, например, при использовании элемента <br>, при уменьшении ширины области просмотра или при печати.
Свойство не наследуется.
box-decoration-break | |
---|---|
Значения: | |
slice | |
clone | Каждый фрагмент блока оборачивается border, padding и margin. border-radius, border-image и box-shadow, если они есть, применяются к каждому фрагменту независимо. Фон рисуется в каждом фрагменте элемента. Таким образом, неповторяющееся фоновое изображение будет отображаться один раз в каждом фрагменте элемента. |
initial | Устанавливает значение свойства в значение по умолчанию. |
inherit | Наследует значение свойства от родительского элемента. |
Синтаксис
box-decoration-break: slice;
box-decoration-break: clone;
box-decoration-break: initial;
box-decoration-break: inherit;
See the Pen
Untitled by Elena (@html5book)
on CodePen.
По материалам CSS Fragmentation Module Level 3