<tbody> Элемент тела таблицы HTML
Базовый уровень Широко доступно *
Эта функция хорошо зарекомендовала себя и работает во многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
* Некоторые части этой функции могут поддерживаться в разной степени.
Элемент <tbody> HTML включает в себя набор строк таблицы (элементов <tr>), указывая, что они составляют тело (основную часть данных) таблицы.
Попробуйте
<table>
<caption>
Council budget (in £) 2018
</caption>
<thead>
<tr>
<th scope="col">Items</th>
<th scope="col">Expenditure</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">Donuts</th>
<td>3,000</td>
</tr>
<tr>
<th scope="row">Stationery</th>
<td>18,000</td>
</tr>
</tbody>
<tfoot>
<tr>
<th scope="row">Totals</th>
<td>21,000</td>
</tr>
</tfoot>
</table>
thead,
tfoot {
background-color: #2c5e77;
color: white;
}
tbody {
background-color: #e4f0f5;
}
table {
border-collapse: collapse;
border: 2px solid rgb(140 140 140);
font-family: sans-serif;
font-size: 0.8rem;
letter-spacing: 1px;
}
caption {
caption-side: bottom;
padding: 10px;
}
th,
td {
border: 1px solid rgb(160 160 160);
padding: 8px 10px;
}
td {
text-align: center;
}
Атрибуты
Этот элемент включает глобальные атрибуты.
Устаревшие атрибуты
Следующие атрибуты устарели и не должны использоваться. Они описаны ниже только для справки при обновлении существующего кода и для исторического интереса.
align-
Задаёт горизонтальное выравнивание каждой ячейки тела таблицы. Возможные перечислимые значения:
left,center,right,justifyиchar. Если поддерживается, значениеcharвыравнивает текстовое содержимое по символу, заданному атрибутомchar, и со смещением, заданным атрибутомcharoff. Вместо этого используйте CSS-свойствоtext-align, поскольку этот атрибут устарел. bgcolor-
Задаёт цвет фона каждой ячейки тела таблицы. Значение представляет собой цвет HTML: либо шестизначный шестнадцатеричный код RGB с префиксом
#, либо ключевое слово цвета. Другие значения<color>CSS не поддерживаются. Вместо этого используйте CSS-свойствоbackground-color, поскольку этот атрибут устарел. char-
Задаёт символ, по которому выравнивается содержимое каждой ячейки тела таблицы. Типичное значение — точка (
.), если требуется выровнять числа или денежные суммы. Если дляalignзадано значение, отличное отchar, этот атрибут игнорируется. charoff-
Задаёт количество символов, на которое содержимое ячейки тела таблицы смещается относительно символа выравнивания, заданного атрибутом
char. valign-
Задаёт вертикальное выравнивание каждой ячейки тела таблицы. Возможные перечислимые значения:
baseline,bottom,middleиtop. Вместо этого используйте CSS-свойствоvertical-align, поскольку этот атрибут устарел.
Примечания по использованию
- Элемент
<tbody>располагается после элементов<caption>,<colgroup>и<thead>. - Если элементы
<tr>указаны как непосредственные дочерние элементы<table>(описание случаев, когда это допустимо, см. в разделе «Пропуск тегов» технического описания), браузер добавит в разметку элемент<tbody>, который включает их в себя. Поэтому CSS-селекторы, такие какtable > tr, не выберут эти элементы. См. также пример «Не указывать тело таблицы». - В одной таблице разрешено использовать несколько элементов
<tbody>, если они идут подряд. Это позволяет разделить строки (элементы<tr>) больших таблиц на секции, каждую из которых при желании можно форматировать отдельно. Если в разметке эти элементы не идут подряд, браузеры исправят эту ошибку автора и обеспечат отображение элементов<thead>и<tfoot>соответственно первыми и последними в таблице. - Вместе со связанными элементами
<thead>и<tfoot>элемент<tbody>предоставляет полезную семантическую информацию и может использоваться при отображении на экране или при печати. Указание таких групп содержимого таблицы также предоставляет важную контекстную информацию вспомогательным технологиям, включая программы чтения с экрана и поисковые системы. - При печати документа с многостраничной таблицей элементы
<thead>и<tfoot>обычно содержат информацию, которая остаётся одинаковой или очень похожей на каждой странице, тогда как содержимое элемента<tbody>обычно различается от страницы к странице. - Если таблица отображается на экране (например, в окне), размер которого недостаточен для показа всей таблицы, пользовательский агент может позволить пользователю прокручивать содержимое блоков
<thead>,<tbody>,<tfoot>и<caption>отдельно друг от друга в пределах одного родительского элемента<table>.
Примеры
Полный пример таблицы, в котором представлены общепринятые стандарты и рекомендации, см. в разделе <table>.
Не указывать тело таблицы
В этом примере показано, что браузер автоматически включает элементы <tr> в элемент <tbody>, если строки не вложены в элемент группировки таблицы (<tbody>, <tfoot> или <thead>) и, как в этом примере, являются непосредственными дочерними элементами <table>.
HTML
Здесь создаётся очень простая таблица с несколькими строками таблицы (элементами <tr>), содержащими данные об учащихся (элементы <td>).
<table>
<tr>
<td>3741255</td>
<td>Jones, Martha</td>
<td>Computer Science</td>
<td>240</td>
</tr>
<tr>
<td>3971244</td>
<td>Nim, Victor</td>
<td>Russian Literature</td>
<td>220</td>
</tr>
<tr>
<td>4100332</td>
<td>Petrov, Alexandra</td>
<td>Astrophysics</td>
<td>260</td>
</tr>
</table>
CSS
Обратите внимание на CSS в примере: для элемента <tbody> задано свойство background-color, а tbody используется как часть дополнительного CSS-селектора. Также наличие элемента <tbody> в DOM можно проверить с помощью инструментов разработчика браузера.
tbody {
background-color: #e4f0f5;
}
tbody > tr > td:last-of-type {
width: 60px;
text-align: center;
}
Результат
Базовая структура тела таблицы
В этом примере расширяется и дополняется простая таблица из предыдущего примера.
HTML
Мы добавляем заголовок таблицы (элемент <thead>) и явно используем элемент <tbody>, чтобы разделить таблицу на семантические секции. Заголовок таблицы содержит заголовки столбцов (элементы <th>). Элемент <tbody> представляет секцию тела таблицы, в которой содержится несколько строк (элементов <tr>) с основными данными таблицы — информацией о каждом учащемся.
Использование таких групп содержимого таблицы и семантической разметки полезно не только для визуального представления (с помощью стилей CSS) и предоставления контекстной информации вспомогательным технологиям. Кроме того, явное использование элемента <tbody> помогает браузеру создать нужную структуру таблицы и избежать нежелательных результатов.
<table>
<thead>
<tr>
<th>Student ID</th>
<th>Name</th>
<th>Major</th>
<th>Credits</th>
</tr>
</thead>
<tbody>
<tr>
<td>3741255</td>
<td>Jones, Martha</td>
<td>Computer Science</td>
<td>240</td>
</tr>
<tr>
<td>3971244</td>
<td>Nim, Victor</td>
<td>Russian Literature</td>
<td>220</td>
</tr>
<tr>
<td>4100332</td>
<td>Petrov, Alexandra</td>
<td>Astrophysics</td>
<td>260</td>
</tr>
</tbody>
</table>
CSS
CSS почти не изменился по сравнению с предыдущим примером, за исключением базового оформления заголовка таблицы, чтобы заголовки столбцов отличались от данных в её теле. Как и в предыдущем примере, для оформления ячеек тела таблицы используется tbody селектор типа.
tbody {
background-color: #e4f0f5;
}
tbody > tr > td:last-of-type {
text-align: center;
}
thead {
border-bottom: 2px solid rgb(160 160 160);
background-color: #2c5e77;
color: white;
}
Результат
Несколько секций тела таблицы
В этом примере таблица из предыдущего примера дополнительно расширяется и дополняется несколькими секциями тела.
Использование нескольких элементов <tbody> позволяет создавать группы строк в таблице. У каждого тела таблицы может быть одна или несколько строк заголовка. Однако в таблице может быть только один элемент <thead>! Поэтому для создания заголовков внутри каждого <tbody> можно использовать <tr> с элементами <th>.
HTML
В таблицу из предыдущего простого примера добавляются новые учащиеся. Вместо того чтобы указывать специальность каждого учащегося в каждой строке, учащиеся сгруппированы по специальностям. Обратите внимание: каждая специальность заключена в отдельный блок <tbody>. Первая строка (элемент <tr>) служит заголовком блока: в ней указано название специальности внутри элемента <th>, который использует атрибут colspan, чтобы растянуть заголовок на все три столбца таблицы. Каждая из остальных строк в <tbody> соответствующей специальности представляет одного учащегося.
<table>
<thead>
<tr>
<th>Student ID</th>
<th>Name</th>
<th>Credits</th>
</tr>
</thead>
<tbody>
<tr>
<th colspan="3">Computer Science</th>
</tr>
<tr>
<td>3741255</td>
<td>Jones, Martha</td>
<td>240</td>
</tr>
<tr>
<td>4077830</td>
<td>Pierce, Benjamin</td>
<td>200</td>
</tr>
<tr>
<td>5151701</td>
<td>Kirk, James</td>
<td>230</td>
</tr>
</tbody>
<tbody>
<tr>
<th colspan="3">Russian Literature</th>
</tr>
<tr>
<td>3971244</td>
<td>Nim, Victor</td>
<td>220</td>
</tr>
</tbody>
<tbody>
<tr>
<th colspan="3">Astrophysics</th>
</tr>
<tr>
<td>4100332</td>
<td>Petrov, Alexandra</td>
<td>260</td>
</tr>
<tr>
<td>8892377</td>
<td>Toyota, Hiroko</td>
<td>240</td>
</tr>
</tbody>
</table>
CSS
Большая часть CSS не изменилась. Однако добавлен немного более сдержанный стиль для ячеек заголовка, находящихся непосредственно внутри <tbody> (в отличие от ячеек в <thead>). Этот стиль применяется к заголовкам, обозначающим соответствующую специальность в каждой секции таблицы.
tbody > tr > th {
border-top: 2px solid rgb(160 160 160);
border-bottom: 1px solid rgb(140 140 140);
background-color: #e4f0f5;
font-weight: normal;
}
tbody {
background-color: whitesmoke;
}
thead {
background-color: #2c5e77;
color: white;
}
Результат
Техническое описание
| Категории содержимого | Нет. |
|---|---|
| Допустимое содержимое | Ноль или более элементов <tr>. |
| Пропуск тегов | Начальный тег элемента <tbody> можно опустить, если первым внутри элемента <tbody> идёт элемент <tr> и если перед ним непосредственно не расположен элемент <tbody>, <thead> или <tfoot> с опущенным закрывающим тегом. (Если элемент пуст, тег опустить нельзя.) Закрывающий тег элемента <tbody> можно опустить, если сразу за элементом <tbody> следует элемент <tbody> или <tfoot> либо если в родительском элементе больше нет содержимого. |
| Допустимые родители | Внутри обязательного родительского элемента <table> элемент <tbody> можно добавить после элементов <caption>, <colgroup> и <thead>. |
| Неявная роль ARIA | rowgroup |
| Допустимые роли ARIA | Любые |
| Интерфейс DOM | HTMLTableSectionElement |
Спецификации
| Спецификация |
|---|
| HTML> # the-tbody-element> |
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | |
tbody |
1 | 12 | 1 | ≤12.1 | 1 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 | 1 |
align |
1 | 12 | 1 | 15 | 3 | 18 | 4 | 14 | 2 | 1.0 | 4.4 | 2 |
bgcolor |
1 | 12 | 1 | ≤15 | 1 | 18 | 4 | ≤14 | 1 | 1.0 | 4.4 | 1 |
char |
НетНачиная с Chrome 1, атрибут можно задать, но он не оказывает эффекта. |
12–79Начиная с Edge 79, атрибут можно задать, но он не оказывает эффекта. |
Нет | НетНачиная с Opera 15, атрибут можно задать, но он не оказывает эффекта. |
НетНачиная с Safari 3, атрибут можно задать, но он не оказывает эффекта. |
НетНачиная с Chrome Android 18, атрибут можно задать, но он не оказывает эффекта. |
Нет | НетНачиная с Opera Android 14, атрибут можно задать, но он не оказывает эффекта. |
НетНачиная с Safari на iOS 2, атрибут можно задать, но он не оказывает эффекта. |
НетНачиная с Samsung Internet 1.0, атрибут можно задать, но он не оказывает эффекта. |
НетНачиная с WebView Android 4.4, атрибут можно задать, но он не оказывает эффекта. |
НетНачиная с WebView на iOS 2, атрибут можно задать, но он не оказывает эффекта. |
charoff |
НетНачиная с Chrome 1, атрибут можно задать, но он не оказывает эффекта. |
12–79Начиная с Edge 79, атрибут можно задать, но он не оказывает эффекта. |
1 | НетНачиная с Opera 15, атрибут можно задать, но он не оказывает эффекта. |
НетНачиная с Safari 3, атрибут можно задать, но он не оказывает эффекта. |
НетНачиная с Chrome Android 18, атрибут можно задать, но он не оказывает эффекта. |
4 | НетНачиная с Opera Android 14, атрибут можно задать, но он не оказывает эффекта. |
НетНачиная с Safari на iOS 2, атрибут можно задать, но он не оказывает эффекта. |
НетНачиная с Samsung Internet 1.0, атрибут можно задать, но он не оказывает эффекта. |
НетНачиная с WebView Android 4.4, атрибут можно задать, но он не оказывает эффекта. |
НетНачиная с WebView на iOS 2, атрибут можно задать, но он не оказывает эффекта. |
valign |
1 | 12 | 1 | 15 | 3 | 18 | 4 | 14 | 2 | 1.0 | 4.4 | 2 |
См. также
- Узнайте: основы таблиц HTML
-
<caption>,<col>,<colgroup>,<table>,<td>,<tfoot>,<th>,<thead>,<tr>: другие элементы, связанные с таблицами -
background-color: CSS-свойство для задания цвета фона каждой ячейки тела таблицы -
border: CSS-свойство для управления границами ячеек тела таблицы -
text-align: CSS-свойство для горизонтального выравнивания содержимого каждой ячейки тела таблицы -
vertical-align: CSS-свойство для вертикального выравнивания содержимого каждой ячейки тела таблицы
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/tbody