widows в CSS — мінімум рядків угорі нової сторінки


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

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

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

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

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

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

автор: Svitlana

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

автор: NagarD

Синтаксис

widows: <число>;

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

<число>

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

автор: Svitlana

Значення без задання: 2
Наслідує: Так
Анімується: Ні
JavaScript синтаксис: object.style.widows = 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

Приклади

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

widows: 2 вимагає, щоб на початку наступної колонки чи сторінки опинялося щонайменше два рядки абзацу — самотній «висячий» рядок заборонено (пор. orphans для кінця колонки). Найпомітніше у друці.

HTML

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

CSS

div {
    columns: 3;
    height: 130px;
    column-fill: auto;
}

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

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

HTML

<p>Вибери потрібне значення для <code>widows</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;
  widows: 4;
}

JS

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

Дві однакові двоколонкові добірки з тим самим текстом: ліворуч widows: 1, праворуч widows: 3. У Chrome, Edge і Safari видно, що праворуч браузер перекинув у другу колонку більше рядків, аби зверху їх було не менше трьох. ⚠️ У Firefox обидві колонки виглядатимуть однаково — він цю властивість не підтримує зовсім.

HTML

<p class="cap">widows: 1 — досить одного рядка вгорі другої колонки:</p>
<div class="mc w1">
    <p class="fill">філер один<br>філер два</p>
    <p class="hot">рядок A<br>рядок B<br>рядок C<br>рядок D</p>
</div>

<p class="cap">widows: 3 — угорі другої колонки мусить бути щонайменше три рядки:</p>
<div class="mc w3">
    <p class="fill">філер один<br>філер два</p>
    <p class="hot">рядок A<br>рядок B<br>рядок C<br>рядок D</p>
</div>

<p class="note">Якщо обидві добірки виглядають однаково — ви у Firefox.</p>

CSS

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

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

.mc p {
    margin: 0;
}

.fill {
    color: #8a94a6;
}

.hot {
    background: #f2b134;
}

.w1 .hot {
    orphans: 1;
    widows: 1;
}

.w3 .hot {
    orphans: 1;
    widows: 3;
}

.note {
    margin: 14px 0 0;
    max-width: 620px;
    font: .85em/1.5 system-ui, sans-serif;
    color: #c0392b;
}
автор: NagarD

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

HTML

<span><strong>Звичайний багатоколонковий текст. Всі властивості мають значення за замовчуванням.</strong></span>
<div class="multicol">
  <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nulla, sint dolores dolore tempora officiis quas blanditiis odit corporis tempore aperiam possimus voluptatum animi in dolor quae molestias laborum fugit. Quis. Lorem ipsum, dolor sit amet consectetur adipisicing elit. Repellat, obcaecati. Deleniti nesciunt enim molestiae suscipit ut nihil obcaecati voluptas molestias.</p>
</div>
<span><strong>А тут ми встановили для властивості <code>widows</code> значення 4. Тобто наступний фрагмент мусить містити мінімум 4 рядки тексту.</strong></span>
<div class="multicol rule">
  <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Ipsam deleniti natus adipisci aspernatur, numquam cupiditate, vitae eveniet est eaque eos assumenda esse similique. Iste sequi ipsa maxime ad dolor amet! Lorem ipsum, dolor sit amet consectetur adipisicing elit. Commodi consequatur fuga a expedita, consectetur dolore placeat perspiciatis eius quod incidunt.</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 {
  widows: 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`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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