orphans в CSS — мінімум рядків унизу сторінки при друку


Властивість orphans визначає мінімальну кількість рядків у контейнері, які потрібно залишити у фрагменті перед перервою фрагментації (існує подібна властивість widows, котра діє майже так само, лише вказує кількість рядків, які потрібні залишити у фрагменті після перерви фрагментації).

Властивість orphans

Загальний термін для переносу вмісту в контейнерах - фрагментація. Сторінки, стовпці та регіони називаються контейнерами фрагментації. Їх також називають фрагментарними.

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

Властивість orphans була спочатку введена у CSS2, щоб допомогти авторам контролювати розриви рядків у друкованих носіях. CSS3 розширює використання цієї властивості для вирішення інших типів функцій макета, таких як макети з декількома стовпцями та регіонами CSS (де вміст з одного або декількох елементів може розміщуватися на одному або декількох рядках).

автор: Svitlana

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

автор: NagarD

Нотатка

Якщо значення властивості конфліктує із властивістю widows, то widows має пріоритет і враховується замість orphans.

автор: Svitlana

Синтаксис

orphans​: <число>;

Властивість orphans може отримувати єдине значення:

<число>

Kількість рядків тексту, які розміщується на наступній сторінці.

автор: Svitlana

Значення без задання: 2
Наслідує: Так
Анімується: Ні
JavaScript синтаксис: object.style.orphans​ = 5;

Переглядачі

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

Приклади

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

orphans: 3 забороняє лишати наприкінці колонки чи сторінки менше трьох рядків абзацу (а widows — на початку наступної). Ефект найпомітніший у друці й багатоколонковій верстці: абзац або лишає внизу три рядки, або переїздить цілком.

HTML

<div class="cols">
    <p>Перший абзац просто заповнює місце в колонці, щоб наступному не вистачило простору.</p>
    <p>Другий абзац достатньо довгий, щоб розірватися між колонками: без orphans унизу міг би лишитися один самотній рядок, а з orphans: 3 — щонайменше три.</p>
</div>

CSS

.cols {
    columns: 2;
    height: 150px;
    column-fill: auto;
}

p {
    orphans: 3;
    widows: 3;
}
автор: Svitlana

Значення у дії

HTML

<p>Вибери потрібне значення для <code>orphans</code>:</p>

<p><strong>Зверніть увагу на те, що ця властивість підтримується далеко не всіма браузерами!</strong></p>

<input type="number" id="val" value="4" min="0">

<hr>

<div id="block">
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>

CSS

* {
  box-sizing: border-box;
  padding: 0;
}

body {
  font-family: monospace;
  font-size: 17px;
  line-height: 1.5;
  color: #222;
}

p {
  margin-top: 0;
}

#block {
  padding: 10px;
  columns: 2;
  background: gold;
  orphans: 4;
}

JS

document.querySelectorAll('#val').forEach((el) => el.addEventListener('change', function () {
  document.querySelectorAll('#block').forEach((n) => n.style.setProperty('orphans', this.value));
}));
автор: Svitlana

Три однакові блоки на дві колонки з column-fill: auto. Червоний абзац завжди опиняється на межі колонок: із типовим значенням 2 він переїжджає цілком, із orphans: 1 лишає внизу один рядок, а з orphans: 10 виштовхується навіть із запасом місця. ⚠️ У Firefox усі три виглядатимуть однаково — там властивості немає.

HTML

<p class="cap">1. Типове значення (orphans: 2) — абзац переїжджає цілком:</p>
<div class="mc">
    <p class="pre">рядок A1<br>рядок A2<br>рядок A3<br>рядок A4</p>
    <p class="hot">рядок B1<br>рядок B2<br>рядок B3</p>
</div>

<p class="cap">2. orphans: 1 — один рядок дозволено лишити внизу:</p>
<div class="mc">
    <p class="pre">рядок A1<br>рядок A2<br>рядок A3<br>рядок A4</p>
    <p class="hot one">рядок B1<br>рядок B2<br>рядок B3</p>
</div>

<p class="cap">3. orphans: 10 — місця бракує завжди, абзац їде далі:</p>
<div class="mc">
    <p class="pre">рядок A1<br>рядок A2</p>
    <p class="hot ten">рядок B1<br>рядок B2<br>рядок B3<br>рядок B4<br>рядок B5</p>
</div>

CSS

.cap {
    margin: 18px 0 6px;
    font: 600 .9em/1.4 system-ui, sans-serif;
    color: #5a6472;
}

.mc {
    column-count: 2;
    column-gap: 20px;
    column-fill: auto;
    column-rule: 1px solid #b9c6d8;
    width: 420px;
    height: 100px;
    border: 1px solid #b9c6d8;
    font: 13px/20px system-ui, sans-serif;
}

.mc p {
    margin: 0;
}

.pre {
    background: #eef1f5;
}

.hot {
    background: #c0392b;
    color: #fff;
}

.one {
    orphans: 1;
}

.ten {
    orphans: 10;
}
автор: NagarD

Приклад використання

HTML

<span><strong>Звичайний багатоколонковий текст. Всі властивості мають значення за замовчуванням.</strong></span>
<div class="multicol">
  <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptatem non magnam, quo quae doloremque natus neque aspernatur ipsum maiores nihil eveniet consequuntur aut repellendus, maxime cumque qui. Odit, praesentium qui.</p>
</div>
<span><strong>А тут ми встановили для властивості <code>orphans</code> значення 4. Тобто наступний фрагмент мусить містити мінімум 4 рядки тексту.</strong></span>
<div class="multicol rule">
  <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Corporis repellendus inventore modi, ad adipisci nobis nulla accusamus consequuntur beatae necessitatibus tempora recusandae consectetur exercitationem vero et ipsam commodi optio dolore! Lorem ipsum dolor sit amet consectetur adipisicing elit. Debitis labore magnam reprehenderit quidem itaque incidunt velit alias, repellendus aliquid enim!</p>
</div>

CSS

body {
  font-family: sans-serif;
  line-height: 1.45;
}

p {
  margin-top: 0;
}

.multicol {
  margin-top: 20px;
  padding: 10px;
  columns: 2;
  background: gold;
  margin-bottom: 16px;
}

.multicol.rule {
  orphans: 4;
}
автор: Svitlana

Коментарі

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

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

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

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

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