JS властивість CSSStyleDeclaration.pageBreakInside


Загальний опис

element.style.pageBreakInside – це властивість CSS, яка дозволяє контролювати, чи допускається розрив сторінки всередині певного елемента під час друку. Вона може приймати значення auto, avoid, initial, inherit, та unset.

Щоб використовувати element.style.pageBreakInside в JavaScript, спочатку потрібно вибрати HTML-елемент, до якого ви хочете застосувати цю властивість. Найчастіше це робиться за допомогою методів document.querySelector або document.getElementById.

// Вибір елемента за ID
let element = document.getElementById('myElement');

// Заборона розриву сторінки всередині елемента
element.style.pageBreakInside = 'avoid';

У цьому прикладі розрив сторінки всередині елемента з ID myElement буде уникнутий, якщо це можливо. Це корисно, коли потрібно забезпечити цілісність певного блоку контенту при друці, наприклад, щоб таблиці або великі зображення не розривалися на дві сторінки.

Значення властивості

  • auto: Браузер сам вирішує, чи допускається розрив сторінки всередині елемента.
  • avoid: Уникає розриву сторінки всередині елемента, якщо це можливо.
  • initial: Встановлює значення за замовчуванням, яке є auto.
  • inherit: Успадковує значення від батьківського елемента.
  • unset: Видаляє будь-яке задане значення, повертаючи властивість до її початкового стану.

Приклад використання з різними значеннями

let element1 = document.querySelector('.section1');
element1.style.pageBreakInside = 'auto';

let element2 = document.querySelector('.section2');
element2.style.pageBreakInside = 'avoid';

У цьому прикладі розрив сторінки всередині елемента з класом section1 визначається браузером, тоді як розрив сторінки всередині елемента з класом section2 буде уникнутий, якщо це можливо. Це дозволяє програмістам більш гнучко контролювати розбивку контенту на сторінки під час друку.

element.style.pageBreakInside найчастіше використовується для документів, які містять великі блоки контенту, такі як таблиці, графіки або довгі списки. Використання цієї властивості дозволяє уникнути ситуацій, коли частина таблиці або зображення опиняється на одній сторінці, а решта – на іншій, що може знижувати читабельність та професійний вигляд документа.

// Повернення до значення за замовчуванням
let element3 = document.querySelector('.section3');
element3.style.pageBreakInside = 'initial';

В цьому прикладі ми повертаємо властивість pageBreakInside для елемента з класом section3 до її значення за замовчуванням, яке є auto. Це може бути корисно, коли потрібно скинути всі зміни і повернутися до початкового стану документа, дозволяючи браузеру самостійно вирішувати, чи слід розривати сторінку всередині елемента.

Загалом, element.style.pageBreakInside є важливим інструментом для створення добре структурованих друкованих версій веб-документів, забезпечуючи цілісність важливих блоків контенту та покращуючи читабельність і професійний вигляд документа.

автор: Bond

Порада

Не забувайте тестувати ваші налаштування друку у різних браузерах, оскільки вони можуть по-різному обробляти pageBreakInside. Використовуйте функцію попереднього перегляду друку, щоб переконатися, що ваші сторінки виглядають так, як ви очікуєте.

let content = document.querySelector('.print-content');
if (window.matchMedia('print').matches) {
    content.style.pageBreakInside = 'avoid';
}
автор: Bond
Порада

Поєднуйте pageBreakInside з іншими CSS-властивостями, такими як pageBreakBefore та pageBreakAfter, для створення складних друкованих макетів. Наприклад, можна уникнути розриву сторінки всередині розділу, одночасно гарантуючи розриви перед і після важливих секцій.

let section = document.querySelector('.section');
section.style.pageBreakBefore = 'always';
section.style.pageBreakInside = 'avoid';
section.style.pageBreakAfter = 'always';
автор: Bond

Синтаксис

element.style.pageBreakInside

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 19 1.3 7 12 8
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 19 1

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі створюються звіти, кожен з яких містить таблицю даних. Властивість pageBreakInside використовується для уникнення розриву сторінок всередині таблиць, що забезпечує їх цілісність та зручність читання. Це важливо для документів, де таблиці містять критичну інформацію, яка повинна залишатися разом на одній сторінці при друці.

// Додавання таблиць з уникненням розриву сторінок всередині таблиці та динамічним керуванням розділами
let reports = [
    { title: 'Звіт 1', data: [['Item 1', 'Detail 1'], ['Item 2', 'Detail 2'], ['Item 3', 'Detail 3']] },
    { title: 'Звіт 2', data: [['Item A', 'Detail A'], ['Item B', 'Detail B'], ['Item C', 'Detail C']] }
];

reports.forEach(report => {
    let reportDiv = document.createElement('div');
    let title = document.createElement('h2');
    let table = document.createElement('table');
    
    title.textContent = report.title;
    
    report.data.forEach(rowData => {
        let row = document.createElement('tr');
        rowData.forEach(cellData => {
            let cell = document.createElement('td');
            cell.textContent = cellData;
            row.appendChild(cell);
        });
        table.appendChild(row);
    });
    
    reportDiv.appendChild(title);
    reportDiv.appendChild(table);
    
    // Заборона розриву сторінки всередині таблиці
    table.style.pageBreakInside = 'avoid';
    
    document.body.appendChild(reportDiv);
});
автор: Bond

У цьому прикладі створюються розділи документа, кожен з яких містить довгий текст. Властивість pageBreakInside використовується для уникнення розриву сторінок всередині параграфів, що покращує читабельність документа та забезпечує цілісність кожного розділу при друці. Це особливо корисно для великих текстових блоків, які мають залишатися разом на одній сторінці.

// Динамічне створення розділів документа з уникненням розривів сторінок всередині великих параграфів
let sections = [
    { title: 'Розділ 1', content: 'Довгий текст розділу 1. '.repeat(50) },
    { title: 'Розділ 2', content: 'Довгий текст розділу 2. '.repeat(50) },
    { title: 'Розділ 3', content: 'Довгий текст розділу 3. '.repeat(50) }
];

sections.forEach(section => {
    let sectionDiv = document.createElement('div');
    let title = document.createElement('h2');
    let content = document.createElement('p');
    
    title.textContent = section.title;
    content.textContent = section.content;
    
    sectionDiv.appendChild(title);
    sectionDiv.appendChild(content);
    
    // Заборона розриву сторінки всередині кожного параграфа
    content.style.pageBreakInside = 'avoid';
    
    document.body.appendChild(sectionDiv);
});
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід