CSS column-span — елемент на всі колонки


Властивість column-span визначає, як повинен відображатися елемент в багатоколонковому тексті - займати ширину всіх колонок або тільки одну з них.

Цю властивість зазвичай застосовують для заголовків тексту або зображень, які не повинні розбиватися на колонки.

Елемент, який охоплює декілька стовпчиків, називається "елемент, що охоплює".

автор: Svitlana

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

автор: NagarD

Синтаксис

column-span: none|all|initial|inherit;

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

none

Елемент займає ширину однієї колонки. Без задання

автор: Svitlana

all

Елемент займає все колонки.

автор: Svitlana

initial

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

автор: Svitlana

inherit

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

автор: Svitlana

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

Переглядачі

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

Приклади

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

Заголовок із column-span: all розтягується через усі колонки, розриваючи потік: текст до нього — у колонках, і після нього — знову в колонках.

HTML

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

CSS

.cols {
    column-count: 3;
}

h2 {
    column-span: all;
    background: #eef6ff;
}
автор: Svitlana

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

HTML

<span>Цей заголовок, так само як й інший вміст контейнеру ділиться на колонки.</span>
<div class="multicol">
  <h4>Це просто заголовок.</h4>
  <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Possimus cumque porro veritatis, alias laudantium perferendis facilis corrupti. Maxime, quia vel?</p>
</div>
<span>А тут, за допомогою властивості <code>column-span</code>, ми вказали, щоб заголовок не ділився на колонки.</span>
<div class="multicol rule">
  <h4>Це просто заголовок.</h4>
  <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Sint facilis vero quisquam delectus neque quia modi quae voluptatem magnam sit!</p>
</div>

CSS

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

h4 {
  margin-top: 0;
}

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

  /* Safari and Chrome */
  -webkit-column-count: 3;
  -webkit-column-rule: 2px dotted gold;

  /* Firefox */
  -moz-column-count: 3;
  -moz-column-rule: 2px dotted gold;

  /* CSS3 */
  column-count: 3;
  column-rule: 2px dotted gold;
}

.multicol.rule h4 {
  column-span: all;
}
автор: Svitlana

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

HTML

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

<strong>Ця властивість може не підтримуватися Вашим браузером!</strong><br><br>

<div class="inputs">
  <input id="none" checked name="column-span" type="radio"/>
  <label for="none">none</label>
  <message for="none">Елемент займає ширину однієї колонки. За замовчуванням</message>
  
  <input id="all" name="column-span" type="radio"/>
  <label for="all">all</label>
  <message for="all">Елемент займає все колонки.</message>
</div>

<p id="message">Елемент займає ширину однієї колонки. За замовчуванням</p>

<hr>

<div id="block">
  <h4 id="span">Це просто заголовок. Дуже довгий, довгий, довгий заголовок.</h4>
  <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.</p>
</div>

CSS

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

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

p, h4 {
  margin-top: 0;
}

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

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

  /* Safari and Chrome */
  -webkit-column-count: 3;
  -webkit-column-rule: 2px dotted gold;

  /* Firefox */
  -moz-column-count: 3;
  -moz-column-rule: 2px dotted gold;

  /* CSS3 */
  column-count: 3;
  column-rule: 2px dotted gold;
}

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

message {
  display: none;
}

JS

const message = document.querySelector('#message');

document.querySelectorAll('.inputs input').forEach((el) => el.addEventListener('change', function () {

  var messageText = document.querySelector("message[for='" + this.id + "']");
  message.textContent = messageText?.textContent ?? '';

  document.querySelectorAll('#span').forEach((n) => n.style.setProperty('column-span', this.id));

}));
автор: Svitlana

Три однакові блоки по три колонки з лінією між ними. У першому заголовок має column-span: all — він лягає впоперек і ділить текст на дві незалежні пари наборів колонок. У другому написано column-span: 2 — недійсне значення, заголовок лишився в колонці. У третьому до all додано float: left — і розтягування зникло.

HTML

<h4>1. column-span: all — заголовок розриває колонки</h4>
<div class="mc">
    <p>Перший абзац тексту, який браузер розкладає на три колонки над заголовком.
        Слова тут потрібні лише для об'єму, тож нехай їх буде вдосталь для двох
        рядків у кожній колонці.</p>
    <h5 class="span-all">Заголовок упоперек</h5>
    <p>Другий абзац лягає під заголовком і знову розкладається на три колонки —
        уже незалежно від того, що було вгорі.</p>
</div>

<h4>2. column-span: 2 — недійсне значення, нічого не відбувається</h4>
<div class="mc">
    <p>Перший абзац тексту, який браузер розкладає на три колонки над заголовком.
        Слова тут потрібні лише для об'єму, тож нехай їх буде вдосталь.</p>
    <h5 class="span-two">Заголовок у колонці</h5>
    <p>Другий абзац просто продовжує ту саму колонку.</p>
</div>

<h4>3. column-span: all разом із float: left — розтягування скасовано</h4>
<div class="mc">
    <p>Перший абзац тексту, який браузер розкладає на три колонки над заголовком.
        Слова тут потрібні лише для об'єму, тож нехай їх буде вдосталь.</p>
    <h5 class="span-float">Заголовок з обтіканням</h5>
    <p>Другий абзац просто продовжує ту саму колонку.</p>
</div>

CSS

h4 {
    margin: 18px 0 6px;
    font: 600 .95em/1.4 system-ui, sans-serif;
    color: #5a6472;
}

.mc {
    column-count: 3;
    column-gap: 16px;
    column-rule: 1px solid #b9c6d8;
    padding: 8px;
    border: 1px solid #b9c6d8;
    font: 13px/1.5 system-ui, sans-serif;
}

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

.mc h5 {
    margin: 0 0 8px;
    padding: 4px 6px;
    background: #f2b134;
    font-size: 14px;
}

.span-all {
    column-span: all;
}

.span-two {
    column-span: 2;
}

.span-float {
    column-span: all;
    float: left;
    width: 100%;
}
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[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`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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