---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://3y3.dev/en/syntax/tables/multiline.md
  - https://3y3.dev/ru/syntax/tables/multiline.md
  - href: ru/syntax/tables/multiline.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
updatedAt: '2026-06-23T14:21:58.000Z'
---
> **Documentation Index:** Fetch the complete configuration index at https://3y3.dev/ru/llms.txt

# Многострочные таблицы

Таблицы с поддержкой внутри ячеек не только простого контента, такого как [строчное форматирование](https://3y3.dev/ru/syntax/base.md#line), [ссылки](https://3y3.dev/ru/syntax/links.md) и т.п., но и сложного, например, [списков](https://3y3.dev/ru/syntax/lists.md), [блоков кода](https://3y3.dev/ru/syntax/code.md) и даже других таблиц.

Многострочные таблицы поддерживают [объединение ячеек](#span).

## Синтаксис {#syntax}

* таблица начинается `#|` и заканчивается `|#`;
* строки начинаются и заканчиваются `||`;
* ячейки отделяются символом `|`.

{% note tip "Заголовки таблицы" %}

Многострочные таблицы не содержат заголовков, но их можно сделать, применив форматирование к контенту ячеек первой строки. Например, выделив их жирным.

Также для семантической разметки заголовочных строк можно использовать атрибут таблицы `header-rows`. Подробнее см. раздел [Заголовочные строки](#header-rows).

{% endnote %}

```markdown
#|
|| **Заголовок1** | **Заголовок2** ||
|| Текст | Текст ||
|#
```

**Результат:**

#|
|| **Заголовок1** | **Заголовок2** ||
|| Текст | Текст ||
|#

## Многострочный текст {#multirow}

В ячейке таблицы можно размещать любой многострочный текст. Например, списки. 

```markdown
#|
||Текст
на двух строчках
|
- Текст 1
- Текст 2
- Текст 3
- Текст 4||
|#
```

**Результат:**

#|
||Текст
на двух строчках
|
- Текст 1
- Текст 2
- Текст 3
- Текст 4||
|#

Или даже другую таблицу:

```markdown
#|
|| 1
|

Текст выше вложенной таблицы

#|
|| 5
| 6||
|| 7
| 8||
|#

Текст под вложенной таблицей||
|| 3
| 4||
|#
```

**Результат**

#|
|| 1
|

Текст выше вложенной таблицы

#|
|| 5
| 6||
|| 7
| 8||
|#

Текст под вложенной таблицей||
|| 3
| 4||
|#

## Атрибуты таблицы {#attributes}

У таблицы можно задать атрибуты на трёх уровнях: для всей таблицы, для отдельной строки и для отдельной ячейки.

| Уровень  | Синтаксис       | Где располагается                                                                |
| -------- | --------------- | -------------------------------------------------------------------------------- |
| Таблица  | `\|:{ ... }`    | На отдельной строке между `#\|` и первой строкой `\|\|`                          |
| Строка   | `\|\|:{ ... }`  | На той же строке, что и `\|\|`, сразу после неё                                  |
| Ячейка   | `::{ ... }`     | В начале содержимого ячейки, сразу после `\|` (или после `\|\|:{ ... }` для первой ячейки строки) |

Атрибуты всей таблицы задаются на отдельной строке между `#|` и первой строкой `||`:

```markdown
#|
|:{header-rows="1"}
|| **Заголовок1** | **Заголовок2** ||
|| Текст | Текст ||
|#
```

Атрибуты строки задаются сразу после открывающих `||`:

```markdown
#|
||:{class="header"} **Заголовок1** | **Заголовок2** ||
|| Текст | Текст ||
|#
```

Атрибуты ячейки задаются в начале её содержимого. Для первой ячейки строки — сразу после `||` (или после атрибутов строки, если они есть), для остальных — сразу после `|`:

```markdown
#|
||::{align="center"} **Заголовок1** | **Заголовок2** ||
|| Текст |::{align="top-right"} Текст ||
|#
```

{% note tip "Правила оформления" %}

- Каждый блок атрибутов должен находиться на той же строке, что и его разделитель: перенос строки между `||` / `|` и блоком атрибутов отключает их распознавание, и текст попадает в содержимое ячейки.
- Между `||` и `:{` (атрибуты строки) пробелы не допускаются.
- Между `|` и `::{` (атрибуты ячейки, кроме первой ячейки строки) пробелы не допускаются.
- После `||:{...}` перед `::{...}` первой ячейки на той же строке допускаются пробелы и табы.
- Строка с атрибутами таблицы (`|:{ ... }`) может встречаться несколько раз между `#|` и первой строкой `||`; при совпадении ключей более поздние значения переопределяют более ранние.

{% endnote %}

## Заголовочные строки {#header-rows}

Чтобы пометить первые N строк таблицы как заголовочные, используйте атрибут таблицы `header-rows="N"`. Заголовочные строки рендерятся в `<th scope="col">` вместо `<td>`.

Значение `N` должно быть положительным целым числом.

```markdown
#|
|:{header-rows="1"}
|| Заголовок1 | Заголовок2 | Заголовок3 ||
|| Текст | Текст | Текст ||
|| Текст | Текст | Текст ||
|#
```

**Результат**

#|
|:{header-rows="1"}
|| Заголовок1 | Заголовок2 | Заголовок3 ||
|| Текст | Текст | Текст ||
|| Текст | Текст | Текст ||
|#

## Пользовательские размеры ячеек {#size}

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

{% list tabs %}

- Ширина ячейки

  Для установки пользовательской ширины ячейки используйте синтаксис `{style="width: 400px"}` внутри ячейки. 

  ```markdown
  #|
  || **Заголовок1** {style="width: 400px"} | **Заголовок2** ||
  || Текст | Текст ||
  |#
  ```

  **Результат**

  #|
  || **Заголовок1** {style="width: 400px"} | **Заголовок2** ||
  || Текст | Текст ||
  |#

- Высота ячейки

  Для установки пользовательской высоты ячейки используйте синтаксис `{style="height:100px"}` внутри ячейки.

  ```markdown
  #|
  || **Заголовок1** {style="height:100px"} | **Заголовок2** ||
  || Текст | Текст ||
  |#
  ```

  **Результат**

  #|
  || **Заголовок1** {style="height:100px"} | **Заголовок2** ||
  || Текст | Текст ||
  |#

{% endlist %}


## Объединение ячеек {#span}

Ячейки можно объединять вертикально с помощью ячейки с символом "^":

```markdown
#|
|| Заголовок1         | Заголовок2   ||
|| Текст на два ряда  | Другой текст ||
|| ^                  | Еще текст    ||
|#
```

**Результат**

#|
|| Заголовок1         | Заголовок2   ||
|| Текст на два ряда  | Другой текст ||
|| ^                  | Еще текст    ||
|#


Горизонтальное объединение поддерживается через символ ">":

```markdown
#|
|| Заголовок1            | Заголовок2   ||
|| Текст на две колонки  | >            ||
|| Другой текст          | Еще текст    ||
|#
```

**Результат**

#|
|| Заголовок1            | Заголовок2   ||
|| Текст на две колонки  | >            ||
|| Другой текст          | Еще текст    ||
|#

Символы объединения ячеек можно использовать вместе:

```markdown
#|
|| Заголовок1                       | Заголовок2   | Заголовок3 || 
|| Текст на две колонки и два ряда  | >            | Текст      ||
|| ^                                | >            | Еще текст  ||
|#
```

**Результат**

#|
|| Заголовок1                       | Заголовок2   | Заголовок3 ||
|| Текст на две колонки и два ряда  | >            | Текст      ||
|| ^                                | >            | Еще текст  ||
|#

### Экранирование символов объединения ячеек

Для того чтобы получить клетку с одним из символов объединения ячеек, внутри можно использовать экранирование через "\",
т.е. "\^" и "\>". 

```markdown
#|
|| Заголовок1                       | Заголовок2 | Заголовок3 || 
|| Текст на одну ячейку             | \>         | Текст      ||
|| \^                               | \>         | Еще текст  ||
|#
```

**Результат**

#|
|| Заголовок1                       | Заголовок2 | Заголовок3 ||
|| Текст на одну ячейку             | \>         | Текст      ||
|| \^                               | \>         | Еще текст  ||
|#

## Выравнивание текста в ячейках {#cell-align}

Для управления выравниванием содержимого ячейки используйте атрибут ячейки `align`:

```markdown
#|
|| Заголовок1                              | Заголовок2 | Заголовок3 ||
||::{align="center"} Текст на две колонки и два ряда | >          | Текст      ||
|| ^                                       | >          | Еще текст  ||
|#
```

**Результат**

#|
|| Заголовок1                              | Заголовок2 | Заголовок3 ||
||::{align="center"} Текст на две колонки и два ряда | >          | Текст      ||
|| ^                                       | >          | Еще текст  ||
|#

Доступны следующие значения:

- `top-left`
- `top-center`
- `top-right`
- `center`
- `bottom-left`
- `bottom-center`
- `bottom-right`

### Устаревший синтаксис {#cell-align-legacy}

{% note warning %}

Ранее для выравнивания использовался синтаксис класса `{.cell-align-*}` внутри содержимого ячейки. Он продолжает работать для обратной совместимости, но считается устаревшим — используйте атрибут `::{align="..."}`.

{% endnote %}

```markdown
#|
|| Заголовок1                                           | Заголовок2 | Заголовок3 ||
|| Текст на две колонки и два ряда {.cell-align-center} | >          | Текст      ||
|| ^                                                    | >          | Еще текст  ||
|#
```

Устаревшие значения:

- `cell-align-top-left`
- `cell-align-top-center`
- `cell-align-top-right`
- `cell-align-center`
- `cell-align-bottom-left`
- `cell-align-bottom-center`
- `cell-align-bottom-right`

## Открытие в модальном окне{#wide-content}

Широкие таблицы удобно открывать в модальном окне. В многострочных таблицах это реализуется с помощью атрибута `{wide-content}`. Атрибут добавляется сразу после символов, закрывающих таблицу `|#`.

```markdown
#|
|| **Заголовок1** | **Заголовок2** ||
|| Текст | Текст ||
|| Текст | Текст ||
|| Текст | Текст ||
|# {wide-content}
```
**Результат**

#|
|| **Заголовок1** | **Заголовок2** ||
|| Текст | Текст ||
|| Текст | Текст ||
|| Текст | Текст ||
|# {wide-content}

## Ограничение высоты таблицы{#sticky-header}

У простых и многострочных таблиц можно ограничить высоту, добавив атрибут `{sticky-header}`. Если таблица превышает размер экрана устройства пользователя, то её заголовок закрепляется, высота ограничивается высотой экрана и контент таблицы начинает скроллиться.

```markdown
#|
|| Заголовок1                       | Заголовок2 | Заголовок3 ||
|| Текст на одну ячейку             | \>         | Текст      ||
|| \^                               | \>         | Еще текст  ||
|| Текст на одну ячейку             | \>         | Текст      ||
...
|| \^                               | \>         | Еще текст  ||
|| Текст на одну ячейку             | \>         | Текст      ||
|| \^                               | \>         | **Еще текст**  ||
|#

{sticky-header}
```

#|
|| Заголовок1                       | Заголовок2 | Заголовок3 ||
|| Текст на одну ячейку             | \>         | Текст      ||
|| \^                               | \>         | Еще текст  ||
|| Текст на одну ячейку             | \>         | Текст      ||
|| \^                               | \>         | **Еще текст**  ||
|| Текст на одну ячейку             | \>         | Текст      ||
|| \^                               | \>         | Еще текст  ||
|| Текст на одну ячейку             | \>         | Текст      ||
|| \^                               | \>         | **Еще текст**  ||
|| Текст на одну ячейку             | \>         | Текст      ||
|| \^                               | \>         | Еще текст  ||
|| Текст на одну ячейку             | \>         | Текст      ||
|| \^                               | \>         | **Еще текст**  ||
|| Текст на одну ячейку             | \>         | Текст      ||
|| \^                               | \>         | Еще текст  ||
|| Текст на одну ячейку             | \>         | Текст      ||
|| \^                               | \>         | **Еще текст**  ||
|| Текст на одну ячейку             | \>         | Текст      ||
|| \^                               | \>         | Еще текст  ||
|| Текст на одну ячейку             | \>         | Текст      ||
|| \^                               | \>         | **Еще текст**  ||
|| Текст на одну ячейку             | \>         | Текст      ||
|| \^                               | \>         | Еще текст  ||
|| Текст на одну ячейку             | \>         | Текст      ||
|| \^                               | \>         | **Еще текст**  ||
|#

{sticky-header}
