Свойство CSS `columns`
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с марта 2017 года.
columns — это свойство-CSS-сокращённая запись, которое задаёт максимальное количество колонок для отображения содержимого элемента, а также минимальную ширину и максимальную высоту колонок элемента.
Попробуйте
columns: 2;
columns: 6rem auto;
columns: 12em;
columns: 2 / 5em;
<section id="default-example">
<p id="example-element">
London. Michaelmas term lately over, and the Lord Chancellor sitting in
Lincoln's Inn Hall. Implacable November weather. As much mud in the streets
as if the waters had but newly retired from the face of the earth, and it
would not be wonderful to meet a Megalosaurus, forty feet long or so,
waddling like an elephantine lizard up Holborn Hill.
</p>
</section>
#example-element {
min-width: 21rem;
text-align: left;
}
Составные свойства
Это свойство является сокращённой записью следующих свойств CSS:
Синтаксис
/* Column width */ columns: 18em; /* Column count */ columns: auto; columns: 2; /* Column width and count */ columns: 2 auto; columns: auto 12em; columns: auto auto; /* Column width and/or count, and column height */ columns: 18em / 10em; columns: 2 / 90vh; columns: 2 auto / 300px; /* Global values */ columns: inherit; columns: initial; columns: revert; columns: revert-layer; columns: unset;
Значение свойства columns может быть задано значением <column-count> и/или <column-width> в любом порядке, за которым при необходимости следует значение <column-height>, предварённое косой чертой (/).
Значения
-
<'column-width'> - Идеальная ширина колонки, заданная как
<length>или ключевое словоauto. Фактическая ширина может быть больше или меньше, чтобы соответствовать доступному пространству. См.column-width. -
<'column-count'> - Идеальное количество колонок, на которые следует разбить содержимое элемента, заданное как
<integer>или ключевое словоauto. Если задано как<integer>, оно определяет максимально допустимое количество колонок. См.column-count. -
<'column-height'> - Высота колонок, заданная как
<length>или ключевое словоauto. См.column-height.
Примечание: Задание значения <column-height> сбрасывает свойство column-wrap к начальному значению auto. Если для <column-height> задано значение <length>, значение auto свойства column-wrap вычисляется как wrap. Если для <column-height> задано значение auto, оно вычисляется как nowrap.
Формальное определение
| Начальное значение | как у каждого из свойств сокращённой записи: |
|---|---|
| Применяется к | блочным контейнерам, кроме блоков-обёрток таблиц |
| Наследуется | нет |
| Вычисленное значение | как у каждого из свойств сокращённой записи: |
| Тип анимации | как у каждого из свойств сокращённой записи: |
Формальный синтаксис
columns =
[ <'column-width'> || <'column-count'> ] [ / <'column-height'> ]?
Примеры
Создание трёх колонок одинаковой ширины
В этом примере показано, как разделить текстовый контейнер на три одинаковые колонки.
HTML
Добавим простой элемент <p> с текстовым содержимым.
<p class="content-box"> This is a bunch of text split into three columns using the CSS <code>columns</code> property. The text is equally distributed over the columns. </p>
CSS
Зададим абзацу значение свойства columns, включающее значение 3 для <column-count> и значение auto для <column-width>.
body {
width: 60%;
margin: 0 auto;
}
.content-box {
columns: 3 auto;
}
Результат
Обратите внимание, что текст разделён на три колонки.
Создание переносимых колонок фиксированной высоты
В этом примере показано, как включить значение <column-height> в сокращённое свойство columns, чтобы разделить текстовый контейнер на колонки фиксированной высоты, которые переносятся на новые строки при достижении строчной границы контейнера.
HTML
Добавим простой элемент <p> с текстом.
<p class="content-box"> This is a bunch of text split into three columns using the CSS <code>columns</code> property. This includes a <code>column-count</code> value of <code>3</code>, a <code>column-width</code> value of <code>auto</code>, and a <code>column-height</code> value of <code>5em</code>. The <code>column-wrap</code> value is set to its initial value, <code>auto</code>; when a <code>column-height</code> value is included, <code>column-wrap: auto</code> resolves to <code>wrap</code>, which allows the columns to wrap onto multiple rows. The text is equally distributed over the columns, and placed into multiple rows. </p>
CSS
Зададим абзацу значение свойства columns, включающее значение 3 для <column-count>, значение auto для <column-width> и значение 5em для <column-height>. Поскольку для <column-height> задано значение <length>, значение свойства column-wrap для абзаца вычисляется как wrap, что позволяет переносить колонки на несколько строк.
.content-box {
columns: 3 auto / 5em;
}
body {
width: 60%;
margin: 0 auto;
}
@supports not (columns: 3 auto / 5em) {
body::before {
content: "Your browser does not support the 'column-height' property.";
background-color: wheat;
position: fixed;
inset: 40% 0;
height: fit-content;
text-align: center;
padding: 1rem 0;
}
}
Результат
Обратите внимание, что текст разделён на три колонки. Высота каждой колонки составляет 5em. После каждой третьей колонки колонки переносятся на новую строку в блочном направлении.
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari для iOS | Samsung Internet | WebView для Android | WebView для iOS | |
columns |
50
50
|
12
12
|
52
9–74До версии 37 несколько колонок не работали с элементамиdisplay: table-caption. |
11.1
15
|
9
3
|
50
50
|
52
22До версии 37 несколько колонок не работали с элементамиdisplay: table-caption. |
11.1
14
|
9
3.2
|
5.0
5.0
|
50
2
|
9
3.2
|
auto |
50 |
12 |
9 |
37 |
3 |
50 |
22 |
37 |
3.2 |
5.0 |
50 |
3.2 |
column-height |
145 |
145 |
Нет |
129 |
Нет |
145 |
Нет |
96 |
Нет |
Нет |
145 |
Нет |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/columns