Spec-Zone.ru › CSS

Свойство 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-count
  • column-width
  • column-height

Синтаксис

/* 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.

Формальное определение

Начальное значение как у каждого из свойств сокращённой записи:
  • column-width
  • column-count
  • column-height
Применяется к блочным контейнерам, кроме блоков-обёрток таблиц
Наследуется нет
Вычисленное значение как у каждого из свойств сокращённой записи:
  • column-width
  • column-count
  • column-height
Тип анимации как у каждого из свойств сокращённой записи:
  • column-width
  • column-count
  • column-height

Формальный синтаксис

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. После каждой третьей колонки колонки переносятся на новую строку в блочном направлении.

Спецификации

Спецификация
Модуль многостолбцовой компоновки CSS, уровень 2
# propdef-columns

Совместимость с браузерами

Настольные компьютеры Мобильные устройства
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
Нет

См. также

  • widows
  • orphans
  • Страничные носители
  • Изучение: многоколоночная компоновка

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API