CSS column-width — ширина колонки тексту


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

Властивість column-width

Властивість column-width визначає мінімальну ширину стовпця. Кількість стовпчиків буде максимальною кількістю стовпців, які можуть вміститися у контейнер, без стовпця, що має ширину менше, ніж значення column-width. Фактична ширина стовпчика може бути меншою, ніж значення ширини стовпчика, якщо ширина контейнера менша.

Це дозволяє створити елементи, які відповідають різним розмірам екрана. Особливо за наявності властивості column-count, яка має пріоритет, для встановлення точної ширини стовпчика, усі значення довжини повинні бути вказані. У горизонтальному тексті це width, column-width, column-gap, та column-rule-width

Ви можете вказати ширину стовпців як автоматичну (тобто auto) або конкретну величину довжини.

автор: Svitlana

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

автор: NagarD

Порада

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

автор: Svitlana
Нотатка

Реальна ширина колонки може бути більшою за вказане вами значення.

автор: Svitlana

Синтаксис

column-width: auto|length|initial|inherit;

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

auto

Ширину стовпчиків буде визначено браузером. Значення без задання.

автор: Svitlana

length

Ширина стовпців

автор: Svitlana

initial

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

автор: Svitlana

inherit

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

автор: Svitlana

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

Переглядачі

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

Приклади

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

column-width задає бажану ширину колонки — браузер сам створює стільки колонок по ~100px, скільки вміщається в контейнер.

HTML

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

CSS

.cols {
    column-width: 100px;
}
автор: Svitlana

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

HTML

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

<input type="number" id="val" placeholder="ширина" value="50" min="0">px

<hr>
<span>Ця властивість визначає мінімальну ширину стовпця. Кількість стовпчиків буде максимальною кількістю стовпців, які можуть вміститися у контейнер, без стовпця, що має ширину менше, ніж значення column-width​. Фактична ширина стовпчика може бути меншою, ніж значення ширини стовпчика, якщо ширина контейнера менша.</span>
<div id="block">
  <p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Suscipit quis corporis, odio recusandae velit praesentium consequuntur fugiat necessitatibus veritatis ipsum reiciendis voluptatum accusamus totam iste eius voluptatibus magni quia blanditiis.</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;
}

.inputs {
  padding: 8px 16px;
  font-size: 19px;
}

#block {
  background: #f1f1f1;
  padding: 10px;
  transition: column-width .15s ease-in;
  
  -webkit-column-rule-width: 1px;
     -moz-column-rule-width: 1px; 
          column-rule-width: 1px;

  -webkit-column-rule-color: gold;
     -moz-column-rule-color: gold;
          column-rule-color: gold;
  
  -webkit-column-rule-style: solid;
     -moz-column-rule-style: solid;
          column-rule-style: solid;
  
  -webkit-column-width: 50px;
     -moz-column-width: 50px; 
          column-width: 50px;
}

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

message {
  display: none;
}

JS

document.querySelectorAll('#val').forEach((el) => el.addEventListener('change', function () {
  var messageText = document.querySelector("message[for='" + this.id + "']");
  document.querySelectorAll('#message').forEach((n) => n.textContent = messageText?.textContent ?? '');
  document.querySelectorAll('#block').forEach((n) => n.style.setProperty('column-width', this.value + 'px'));
}));
автор: Svitlana

Обом блокам задано однакове column-width: 140px. Реальна ширина колонки різна: браузер бере максимум колонок, що влазять, і ділить між ними всю ширину.

HTML

<div class="cols narrow">
    <p>Контейнер завширшки 320 пікселів: влазять дві колонки.</p>
    <p>Текст перетікає з колонки в колонку сам, поки не закінчиться.</p>
</div>
<div class="cols">
    <p>Контейнер на всю доступну ширину: колонок більше, і кожна ширша за 140 пікселів, бо залишок ділиться між ними.</p>
    <p>Саме тому значення читають як «не вужче ніж», а не як точний розмір колонки.</p>
</div>

CSS

.cols {
    column-width: 140px;
    column-gap: 20px;
    column-rule: 1px dashed #999;
    padding: 8px;
    margin-bottom: 14px;
    border: 1px solid #999;
    font: 13px/1.5 sans-serif;
}

.cols p {
    margin: 0 0 8px;
}

.narrow {
    width: 320px;
}
автор: NagarD

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

HTML

<span>Це контейнер з багатоколонковим текстом. Властивість <code>column-width</code> має значення за замовчуванням: auto. Властивість <code>column-count</code> не задана!</span>
<div class="multicol">
  <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Ratione necessitatibus sed, cumque sit nemo delectus voluptate asperiores modi ut alias!</p>
</div>

<span>Це контейнер з багатоколонковим текстом. Властивість <code>column-width</code> має значення: 70px. Властивість <code>column-count</code> знову ж таки не задана!</span>
<div class="multicol rule">
  <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Veritatis sit iusto architecto! Culpa, possimus voluptatum sint officiis nesciunt amet consequatur.</p>
</div>

CSS

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

p {
  margin-top: 0;
}

.multicol {
  background: #eee;
  padding: 10px;
  margin-bottom: 16px;

  -webkit-column-rule: 2px dotted gold;
     -moz-column-rule: 2px dotted gold;
          column-rule: 2px dotted gold;

  -webkit-column-width: auto; /* Safari and Chrome */
     -moz-column-width: auto; /* Firefox */
          column-width: auto; /* CSS3 */
}

.multicol.rule {
  -webkit-column-width: 70px; /* Safari and Chrome */
     -moz-column-width: 70px; /* Firefox */
          column-width: 70px; /* 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`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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