CSS column-count — розбити текст на колонки


Властивість column-count визначає на скільки стовпчиків має бути розділений текст в багатоколонковому тексті.

Ви можете вказати, щоб кількість стовпців розраховувалася автоматично (тобто auto) або задати певне число (наприклад, 3 для макета з 3-ма стовпцями).

автор: Svitlana

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

автор: NagarD

Нотатка

Ви також можете використовувати column- властивості, щоб встановити ширину та кількість стовпців одночасно.

автор: Svitlana

Синтаксис

column-count: number|auto|initial|inherit;

Властивість column-count може отримувати 4 значень:

number

Задає число колонок

автор: Svitlana

auto

Число стовпців буде визначатися іншими властивостями, наприклад: column-width чи column-gap

автор: Svitlana

initial

Встановлює цю властивість в значення без задання

автор: Svitlana

inherit

Успадкує значення властивості від свого батьківського елемента

автор: Svitlana

Значення без задання: auto
Наслідує: Ні
Анімується: Так
JavaScript синтаксис: object.style.columnCount=3

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
50 52 9 37 12 10
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
50 50 52 9

Приклади

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

column-count: 3 ділить текст рівно на три колонки — їхню ширину браузер вираховує сам.

HTML

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

CSS

.cols {
    column-count: 3;
}
автор: Svitlana

Обидва списки розбито на три колонки однаково. У першому картки рве між колонками навпіл, у другому кожна картка лишається цілою завдяки break-inside: avoid.

HTML

<p>column-count: 3 — картки рве між колонками</p>
<div class="cols">
  <div class="card"><b>Київ</b><br>Столиця, місто-герой, розташоване на Дніпрі.</div>
  <div class="card"><b>Львів</b><br>Історичний центр внесено до списку ЮНЕСКО.</div>
  <div class="card"><b>Одеса</b><br>Найбільший морський порт країни на Чорному морі.</div>
  <div class="card"><b>Харків</b><br>Перша столиця, великий університетський центр.</div>
  <div class="card"><b>Дніпро</b><br>Місто на обох берегах Дніпра, промисловий вузол.</div>
</div>

<p>те саме + break-inside: avoid на картках</p>
<div class="cols keep">
  <div class="card"><b>Київ</b><br>Столиця, місто-герой, розташоване на Дніпрі.</div>
  <div class="card"><b>Львів</b><br>Історичний центр внесено до списку ЮНЕСКО.</div>
  <div class="card"><b>Одеса</b><br>Найбільший морський порт країни на Чорному морі.</div>
  <div class="card"><b>Харків</b><br>Перша столиця, великий університетський центр.</div>
  <div class="card"><b>Дніпро</b><br>Місто на обох берегах Дніпра, промисловий вузол.</div>
</div>

CSS

body {
  font-family: sans-serif;
  font-size: 14px;
  padding: 12px;
}

p {
  margin: 18px 0 8px;
  font-family: monospace;
  color: #444;
}

.cols {
  column-count: 3;
  column-gap: 16px;
  column-rule: 1px solid #ccc;
}

.card {
  margin: 0 0 10px;
  padding: 8px;
  background-color: #eef2fa;
  border-left: 3px solid #4a6fa5;
}

.keep .card {
  break-inside: avoid;
}
автор: NagarD

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

HTML

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

<input type="number" id="val" placeholder="число" value="3" min="0">

<hr>

<div id="block">
  <p>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>
  <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.</p>
</div>

CSS

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

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

#form {
  padding: 8px 16px;
  font-size: 19px;
}

#block {
  background: gold;
  padding: 10px;
  margin-bottom: 36px;
  -webkit-column-count: 3; /* Safari and Chrome */
  -moz-column-count: 3; /* Firefox */
  column-count: 3; /* CSS3 */
}

#text {
  height: 60px;
  background-color: #eee;
  padding: 16px 0;
}

message {
  display: none;
}

JS

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

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

HTML

<p>В цьому контейнері чотири стовпці. Ми досягли цього, встановивши значення 4 для <code>column-count</code>.</p>
<div class="multicol col4">
  <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.</p>
</div>

  <p>Для блоку не задана властивість <code>column-count</code></p>
<div class="multicol">
  <p>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

.multicol {
  font-family: sans-serif;
  color: #353535;
  background: gold;
  padding: 10px;
  margin-bottom: 36px;
}
p{
  font-size: 18px;
}
.col4 {
  -webkit-column-count: 4; /* Safari and Chrome */
  -moz-column-count: 4; /* Firefox */
  column-count: 4; /* CSS3 */
}
автор: 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`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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