Справка:Таблицы

This page is a translated version of the page Help:Tables and the translation is 100% complete.
PD Примечание: Редактируя эту страницу, вы соглашаетесь на передачу своего вклада по лицензии CC0.
Подробнее — в проекте Помощь с общественным достоянием.
PD
Запрос Таблицы перенаправляется сюда; информацию о структуре вики таблиц, смотрите Manual:Макет базы данных .

В вики-страницах могут быть созданы таблицы. Как правило, следует избегать создания таблиц, за исключением случаев, когда они действительно необходимы. Поскольку разметка таблиц усложняет редактирование страницы.[1]

Вики-разметка таблиц

{| начало таблицы, обязательное
|+ заголовок таблицы, необязателен; может находиться только между началом таблицы и первой строкой таблицы
|- строка таблицы, в первой строке необязательно — вики-движок сам подставит первую строку
! ячейка заголовка таблицы, необязательно. Идущие подряд ячейки заголовка таблицы могут быть указаны в одной строке, разделённые двойным маркером (!!), или начинаться с новой строки с одиночным маркером (!).
| ячейка данных, необязательно. Идущие подряд ячейки данных могут быть указаны на одной строке, разделённые двойным маркером (||), или начинаться каждый с новой строки, предваряемые одиночным маркером (|).
|} конец таблицы, обязательное
  • вышеприведённые знаки должны начинаться с новой строки, кроме двойных || и !! для последовательных ячеек в строке. Тем не менее, пробелы в начале строки игнорируются.
  • атрибуты XHTML. Каждый знак разметки, кроме конца таблицы, может иметь при себе один или несколько атрибутов XHTML. Атрибуты должны быть на той же строке, что и знаки разметки. Атрибуты следует разделять друг от друга одиночным пробелом.
    • У ячеек и заголовка (| или ||, ! или !!, и |+) есть содержимое. Поэтому содержимое от атрибутов тэга нужно отделять вертикальной чертой (|). Содержимое может располагаться в той же строке или в следующих строках.
    • Маркеры таблицы и строк ({| и |-) напрямую не содержат контента. Не добавляйте разделитель в виде вертикальной черты (|) после их необязательных атрибутов. Если вы добавите его по ошибке к маркеру таблицы или строки, парсер удалит его и атрибут может присоединиться к неверному маркеру.
  • Содержимое может располагаться (а) за знаком ячейки в той же строке после необязательных XHTML атрибутов или (б) на строках под знаком ячейки. Содержимое, использующее вики-разметку, которая должна сама начинаться с новой строки, например, списки, заголовки или вложенные таблицы, разумеется, должно начинаться с новой строки.
    • Вертикальная черта в качестве символа. Чтобы вставить символ вертикальной черты (|) в таблицу, используйте экранирующую разметку <nowiki>|</nowiki>.


Основы

Создать таблицу с помощью панели инструментов редактора

В редакторе викитекста поместите курсор туда, где вы хотите вставить таблицу. Затем на панели инструментов нажмите “Дополнительно”, затем выберите кнопку   Таблица. Откроется диалоговое окно.

В диалоговом окне вы можете выбрать, включить ли строку заголовка таблицы, стилизовать таблицу с помощью рамки и сделать таблицу сортируемой. Отобразиться пример предварительного просмотра. Вы также можете установить необходимое количество строк и столбцов. Затем нажмите кнопку “Вставить”.

По умолчанию генерируется следующий код:

Викикод:
{| class="wikitable" style="margin:auto"
|+ Текст подписи
|-
! Текст заголовка !! Текст заголовка !! Текст заголовка
|-
| Текст ячейки || Текст ячейки || Текст ячейки
|-
| Текст ячейки || Текст ячейки || Текст ячейки
|-
| Текст ячейки || Текст ячейки || Текст ячейки
|}
Результат:
Текст подписи
Текст заголовка Текст заголовка Текст заголовка
Текст ячейки Текст ячейки Текст ячейки
Текст ячейки Текст ячейки Текст ячейки
Текст ячейки Текст ячейки Текст ячейки

Минимальный синтаксис

В нижеприведенной таблице нет границ и правильной разбивки, она демонстрирует простейшую табличную структуру с вики-разметкой.

Вы вводите Вы получаете
{|
|Апельсин
|Яблоко
|-
|Хлеб
|Пирог
|-
|Масло
|Мороженое
|}
Апельсин Яблоко
Хлеб Пирог
Масло Мороженое

Ячейки в одной строке могут быть размещены на одной линии, разделённые знаками || (два символа-разделителя). Если текст в ячейке должен содержать разрыв строки, используйте вместо разрыва ‎<br />.

Вы вводите Вы получаете
{|
|Апельсин||Яблоко||и т.д.
|-
|Хлеб||Пирог||и т.д.
|-
|Масло||Мороженое||и <br /> т. д.
|}
Апельсин Яблоко и т.д.
Хлеб Пирог и т.д.
Масло Моро
женое
и
т.д.

Дополнительные пробелы внутри вики-разметки для улучшения её внешнего вида, как это показано в примере ниже, не влияют на итоговый вид таблицы.

Вы вводите Вы получаете
{|
|  Апельсин || Яблоко || и т.д.
|-
|   Хлеб || Булка || и т.д.
|-
|   Масло || Мороженое || и т.д.
|}
Апельсин Яблоко и т.д.
Хлеб Пирог и т.д.
Масло Мороженое и т.д.

У вас также может быть более длинный текст или более сложное написание в ячейках таблицы:

Вы вводите Вы получаете
{|
|Lorem ipsum dolor sit amet,
consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt
ut labore et dolore magna aliquyam erat,
sed diam voluptua.

At vero eos et accusam et justo duo dolores
et ea rebum. Stet clita kasd gubergren,
no sea takimata sanctus est Lorem ipsum
dolor sit amet.
|
* Lorem ipsum dolor sit amet
* consetetur sadipscing elitr
* sed diam nonumy eirmod tempor invidunt
|}
Lorem ipsum dolor sit amet,

consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

  • Lorem ipsum dolor sit amet
  • consetetur sadipscing elitr
  • sed diam nonumy eirmod tempor invidunt

Заголовки таблиц

Заголовки таблиц можно создать, используя "!" (восклицательный знак) вместо "|" (вертикальной черты). Заголовки по умолчанию показываются обычно жирными и отцентрированными.

Вы вводите Вы получаете
{|
! style="text-align:left;"| Предмет
! Количество
! Цена
|-
|Апельсин
|10
|7.00
|-
|Хлеб
|4
|3.00
|-
|Масло
|1
|5.00
|-
!Всего
|
|15.00
|}
Предмет Количество Цена
Апельсин 10 7.00
Хлеб 4 3.00
Масло 1 5.00
Всего 15.00
При использовании атрибутов, как в заголовке 'Предмет', нужна вертикальная черта '|' для разделения. Но не восклицательный знак '!'.

Название таблицы

Над таблицей может быть размещено её название, как показано ниже.

Вы вводите Вы получаете
{|
|+Комплект продуктов
|-
|Апельсин
|Яблоко
|-
|Хлеб
|Пирог
|-
|Масло
|Мороженое
|}
Комплект продуктов
Апельсин Яблоко
Хлеб Пирог
Масло Мороженое

class="wikitable"

Основной стиль (светло-серый фон, границы, отступ и выравнивание слева) можно получить, добавив class="wikitable".

Вы вводите Вы получаете
{| class="wikitable"
|+Комплект продуктов
|-
|Апельсин
|Яблоко
|-
|Хлеб
|Пирог
|-
|Масло
|Мороженое
|}
Комплект продуктов
Апельсин Яблоко
Хлеб Пирог
Масло Мороженое

Атрибуты HTML colspan и rowspan

Вы можете использовать атрибуты HTML colspan и rowspan для ячеек при более сложной разметке.

Вы вводите Вы получаете
{| class="wikitable"
!colspan="6"|Список покупок
|-
|rowspan="2"|Хлеб и масло
|Пирог
|Плюшки
|Слойка
|colspan="2"|Круассан
|-
|Сыр
|colspan="2"|Мороженое
|Масло
|Йогурт
|}
Список покупок
Хлеб и масло Пирог Плюшки Слойка Круассан
Сыр Мороженое Масло Йогурт

Атрибуты XHTML

В таблицы вы можете добавлять атрибуты XHTML. В качестве официального источника по ним смотрите страницу спецификации W3C HTML-таблиц.

Атрибуты для таблиц

Помещая атрибуты после начального тэга таблицы ({|) применяет атрибуты ко всей таблице.

Вы вводите Вы получаете
{| class="wikitable" style="text-align: center; color: green;"
|Апельсин
|Яблоко
|12,333.00
|-
|Хлеб
|Пирог
|500.00
|-
|Масло
|Мороженое
|1.00
|}
Апельсин Яблоко 12,333.00
Хлеб Пирог 500.00
Масло Мороженое 1.00

Атрибуты для ячеек

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

Вы вводите Вы получаете
{| class="wikitable"
| Апельсин
| Яблоко
| style="text-align:right;" | 12,333.00
|-
| Хлеб
| Булка
| style="text-align:right;" | 500.00
|-
| Масло
| Мороженое
| style="text-align:right;" | 1.00
|}
Апельсин Яблоко 12,333.00
Хлеб Пирог 500.00
Масло Мороженое 1.00

Также можно использовать атрибуты ячейки, когда вы размещаете несколько ячеек в одной строке. Обратите внимание, что ячейки разделены ||, а внутри каждой ячейки атрибут(ы) и значение разделены |.

Вы вводите Вы получаете
{| class="wikitable"
| Апельсин || Яблоко     || style="text-align:right;" | 12,333.00
|-
| Хлеб || Пирог       || style="text-align:right;" | 500.00
|-
| Масло || Мороженое || style="text-align:right;" | 1.00
|}
Апельсин Яблоко 12,333.00
Хлеб Пирог 500.00
Масло Мороженое 1.00

Атрибуты для строк

Для строки тоже можно использовать атрибуты.

Вы вводите Вы получаете
{| class="wikitable"
| Апельсин
| Яблоко
| style="text-align:right;"| 12,333.00
|-
| Хлеб
| Пирог
| style="text-align:right;"| 500.00
|- style="font-style: italic; color: green;"
| Масло
| Мороженое
| style="text-align:right;"| 1.00
|}
Апельсин Яблоко 12,333.00
Хлеб Пирог 500.00
Масло Мороженое 1.00

Атрибуты подписи и заголовков

Атрибуты можно добавлять в заголовки и названия как показано ниже.

Вы вводите Вы получаете
{| class="wikitable"
|+ style="caption-side:bottom; color:#e76700;"|''Комплект продуктов''
|-
! style="color:green" | Фрукты
! style="color:red" | Жиры
|-
|Апельсин
|Масло
|-
|Груша
|Пирог
|-
|Яблоко
|Мороженое
|}
Комплект продуктов
Фрукты Жиры
Апельсин Масло
Груша Пирог
Яблоко Мороженое

Ширина границы

Если у атрибута "border-width:" только одно число, он применяется ко всем четырем сторонам границы:

Вы вводите Вы получаете
{|style="border-style: solid; border-width: 20px"
|
Привет
|}

Привет

Если у атрибута "border-width:" более одного числа, то четыре цифры соответствуют сверху, справа, снизу, слева (ЗАПОМНИТЕ этот порядок ↑→↓←):

Вы вводите Вы получаете
{|style="border-style: solid; border-width: 10px 20px 100px 0"
|
Привет
|}

Привет

Когда значений меньше 4х, то значение для левой границы соответствует значению для правой, значение для нижней границы соответствует значению для верхней, а значение для правой границы соответствует значению для верхней.
  • три значения, то есть top, right, bottom: тогда значением по умолчанию для left является значение right (второе значение). Для Width то же самое слева и справа.
  • два значения, то есть top, right: тогда значением по умолчанию для bottom является значение top (первое значение), а для left по умолчанию присваивается значение right (второе значение). Ширина сверху такая же, как и снизу; Ширина слева такая же, как справа.
  • одно значение, то есть top: тогда значением по умолчанию для right является значение top, и оно одинаково для bottom и left. Четвертая ширина одинакова и строит правильную границу. Это самый короткий вариант.

Другой метод задать ширину четырёх сторон ячейки - использовать атрибуты "border-left", "border-right", "border-top" и "border-bottom":

Вы вводите Вы получаете
{|style="border-left:solid 10px black;border-right:solid 20px black;border-top:solid 30px black;border-bottom:solid 40px black;" align="center"
|
Привет
|}

Привет

  • HTML атрибуты (такие как "width=", "border=", "cellspacing=", "cellpadding=") не нуждаются в указании значений единиц (здесь предполагаются пиксели).

Они также недействительны в HTML 5.

"Cellpadding" предназначен для установки пространства между стенкой ячейки и содержимым ячейки.[2]

Свойства стиля CSS (которые отменяет действия атрибутов HTML) требуют явную единицу длины (если значение не равно нулю), например "px" для пикселя.

С HTML атрибутами и стилями CSS

Атрибуты стиля CSS можно использовать вместе с другими HTML атрибутами или отдельно.

Вы вводите Вы получаете
{| class="wikitable" style="color:green; background-color:#ffffcc;" cellpadding="10"
|Апельсин
|Яблоко
|-
|Хлеб
|Пирог
|-
|Масло
|Мороженое
|}
Апельсин Яблоко
Хлеб Пирог
Масло Мороженое

Padding

Он представляет собой внутреннюю границу между содержимым и границей ячейки.

Вы вводите Вы получаете
{|class=wikitable
| style="padding: 10px" | Пример style="padding:10px"
|-
| style="padding: 50px" | Пример style="padding:50px"<br/><br/>Укажите отступ для '''КАЖДОЙ ЯЧЕЙКИ'''
|-
| style="padding:100px" | Пример style="padding:100px"
|}
Пример style="padding:10px"
Пример style="padding:50px"

Укажите отступ для КАЖДОЙ ЯЧЕЙКИ
Пример style="padding:100px"

Ширина столбца

Ширину столбца можно задать следующим образом:

Вы вводите:

{| class="wikitable" style="width: 85%;"
| colspan="2" | Ширина этого столбца составляет 85% ширины экрана
|-
| style="width: 30%"| '''Этот столбец составляет 30% из 85% ширины экрана'''
| style="width: 70%"| '''Этот столбец составляет 70% от 85% ширины экрана'''
|}

Вы получаете:

Ширина этого столбца составляет 85% ширины экрана
Этот столбец составляет 30% из 85% ширины экрана Этот столбец составляет 70% от 85% ширины экрана

Доступность ячеек шапки таблицы

Ячейки шапки таблицы явно не указывают к каким данным ячейки таблицы они применяются (к тем, что справа от них на той же строке; или к тем, что снизу в том же столбце). Когда таблица прорисовывается в визуальном 2D окружении, то при этом обычно легко сделать выводы.

Однако, когда таблицы воспроизводятся на невизуальных медиа, вы можете помочь браузеру определить, к какой ячейки шапки таблицы применяется описание любой выделенной ячейки (для того, чтобы повторить её содержание с каким-нибудь помощником), использовав атрибуты scope="row" или scope="col" на ячейках шапки таблицы. В большинстве случаев с простыми таблицами вы будете использовать scope="col" на всех ячейках заголовка первой строки, и scope="row" на первой ячейке следующих строк:

Вы вводите Вы получаете
{| class="wikitable"
|-
! scope="col"| Предмет
! scope="col"| Количество
! scope="col"| Стоимость
|-
! scope="row"| Хлеб
| 0.3 kg
| $0.65
|-
! scope="row"| Масло
| 0.125 kg
| $1.25
|-
! scope="row" colspan="2"| Всего
| $1.90
|}
Предмет Количество Стоимость
Хлеб 0.3 kg $0.65
Масло 0.125 kg $1.25
Всего $1.90

Выравнивание

Выравнивание таблицы

Выравнивание таблицы достигается с использованием CSS. Выравнивание таблицы контролируется с помощью полей. Фиксированное поле на одной стороне сделает таблицу выравненной по этой стороне, если на противоположной стороне поле задано как auto. Чтобы выравнять таблицу по центру, следует выставить оба поля на auto.

Для примера, таблица с выравниванием по правому краю:

Вы вводите Вы получаете
{| class="wikitable" style="margin-left: auto; margin-right: 0px;"
| Апельсин
| Яблоко
|-
| Хлеб
| Пирог
|-
| Масло
| Мороженое
|}

Lorem ipsum dolor sit amet, consectetuer adipiscing
elit, sed diam nonummy nibh euismod tincidunt ut
laoreet dolore magna aliquam erat volutpat. Ut wisi
enim ad minim veniam, quis nostrud exerci tation
ullamcorper suscipit lobortis nisl ut aliquip ex ea
commodo consequat.
Апельсин Яблоко
Хлеб Пирог
Масло Мороженое

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.

И таблица с выравниванием по центру:

Вы вводите Вы получаете
{| class="wikitable" style="margin: auto;"
| Апельсин
| Яблоко
|-
| Хлеб
| Пирог
|-
| Масло
| Мороженое
|}

Lorem ipsum dolor sit amet, consectetuer adipiscing
elit, sed diam nonummy nibh euismod tincidunt ut
laoreet dolore magna aliquam erat volutpat. Ut wisi
enim ad minim veniam, quis nostrud exerci tation
ullamcorper suscipit lobortis nisl ut aliquip ex ea
commodo consequat.
Апельсин Яблоко
Хлеб Пирог
Масло Мороженое

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.

Обтекание таблицы текстом

Если таблица выравнивается по правой или левой стороне страницы, текст, что идёт после таблицы, начинается в конце этой таблицы, оставляя пустое пространство вокруг таблицы. Вы можете сделать так, чтобы текст обтекал вокруг таблицы, заставляя таблицу как бы плавать вокруг текста, вместо простого её выравнивания. Это достигается за счёт использования CSS атрибута float, который может указать, где таблица будет иметь обтекание с левой или правой стороны. При использовании float, поля (margin) не управляют выравниванием таблицы и могут использоваться для указания расстояния между таблицей и окружающим текстом.

Вы вводите Вы получаете
{| class="wikitable" style="float:right; margin-left: 10px;"
| Апельсин
| Яблоко
|-
| Хлеб
| Пирог
|-
| Масло
| Мороженое
|}

Lorem ipsum dolor sit amet, consectetuer adipiscing
elit, sed diam nonummy nibh euismod tincidunt ut
laoreet dolore magna aliquam erat volutpat. Ut wisi
enim ad minim veniam, quis nostrud exerci tation
ullamcorper suscipit lobortis nisl ut aliquip ex ea
commodo consequat. Duis autem vel eum iriure dolor
in hendrerit in vulputate velit esse molestie consequat,
vel illum dolore eu feugiat nulla facilisis at vero
eros et accumsan et iusto odio dignissim qui blandit
praesent luptatum zzril delenit augue duis dolore te
feugait nulla facilisi.
Апельсин Яблоко
Хлеб Пирог
Масло Мороженое

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.

Выравнивание содержимого ячейки

Выравнивание содержимого ячейки может управляться двумя разными CSS-свойствами: text-align и vertical-align. text-align можно указать в таблице, строке или отдельных ячейках, тогда как vertical-align можно задать только отдельным строкам или ячейкам.

Вы вводите Вы получаете
{| class="wikitable"
|- style="vertical-align:top;"
| style="height:100px; width:100px; text-align:left;" | A
| style="height:100px; width:100px; text-align:center;" | B
| style="height:100px; width:100px; text-align:right;" | C
|- style="vertical-align:middle;"
| style="height:100px; width:100px; text-align:left;" | D
| style="height:100px; width:100px; text-align:center;" | E
| style="height:100px; width:100px; text-align:right;" | F
|- style="vertical-align:bottom;"
| style="height:100px; width:100px; text-align:left;" | G
| style="height:100px; width:100px; text-align:center;" | H
| style="height:100px; width:100px; text-align:right;" | I
|}
A B C
D E F
G H I


Предостережения

Отрицательные числа

Если ячейка начинается с новой строки с отрицательного числа со знаком минус (или параметра, который оценивается как отрицательное число), это может поломать таблицу, потому что символы |- воспринимаются вики как начало новой строки в таблице, а не новой ячейки. Чтобы избежать такой проблемы, ставьте пробел перед минусом (| -6) или воспользуйтесь внутристроковой разметкой ячейки (|| -6).

CSS по сравнению с атрибутами

Границы таблицы, указанные через CSS, а не атрибутами границы, будут воспроизводиться некорректно в небольшом подмножестве текстовых браузеров.

Общие атрибуты столбцов, групп столбцов и групп строк

Синтаксис MediaWiki для таблиц на данный момент не предлагает поддержку общих атрибутов столбцов (тег HTML ‎<col />), групп столбцов (HTML тег ‎<colgroup>‎</colgroup>) и групп строк (HTML теги ‎<thead>‎</thead>, ‎<tbody>‎</tbody> и ‎<tfoot>‎</tfoot>). Указанные стандартные элементы HTML не принимаются даже с использованием синтаксиса HTML или XHTML.

Все строки и ячейки (шапки или данных) таблицы воспроизводятся внутри одной скрытой группе строк (HTML элемент ‎<tbody>‎</tbody>) без каких-либо атрибутов или стилей.

Таблицы и Визуальный Редактор (ВР)

Смотрите также: Справочная:Визуальный редактор/Руководство пользователя

Смотрите Phab: T108245: "Fully support basic table editing in the visual editor" Смотрите список задач. Завершенные задачи поражены. Там может быть трудно понять из-за технического языка, что именно было улучшено, или какие функции были добавлены. Пожалуйста, добавьте пояснительную информацию ниже.

Теперь можно перемещать или удалять столбцы и строки

Нажмите на заголовок столбца или строки. Затем нажмите на стрелку. Во всплывающем меню нажмите Cместить или Удалить.

Вставлять пустую строку или столбец

В том же всплывающем меню нажмите Вставить.

Копировать таблицу с веб-страницы в Визуальный Редактор

Можно скопировать и вставить таблицу с веб-страницы непосредственно в Визуальный Редактор (ВР). Чтобы сделать это безопасно, используйте песочницу и проверьте таблицу на предмет правильного кодирования в режиме источника викитекста и правильного отображения в визуальном редакторе и в режиме предварительного просмотра.

Вспомогательные инструменты

  • Excel2Wiki позволяет скопировать таблицу из Excel, Apache OpenOffice, LibreOffice или Gnumeric, чтобы преобразовать ее в таблицу викикода.

Смотрите также

Примечания

  1. Таблица может быть создана как с использованием непосредственно табличных XHTML-элементов, так и с использованием вики-форматирования. Создание таблиц с использованием XHTML-элементов хорошо описано на различных веб-страницах и не будет здесь рассматриваться. Преимущество вики-кода для разметки таблиц состоит в использовании специальных буквенных символов, что позволяет легче представлять структуру таблицы по сравнению с XHTML-разметкой.
  2. HTML table cellpadding Attribute