HTML <tr> тег
Тег HTML <tr> определяет строку в таблице, содержащую ячейки <th> и <td>. Атрибуты и стилизация с примерами.
Тег HTML <tr> определяет строку в таблице. Это контейнер: <tr> содержит ячейки данной строки, и каждая ячейка записывается с помощью <th> (ячейка заголовка) или <td> (стандартная ячейка данных). Таблица строится путём укладки строк <tr>, и браузер выравнивает ячейки каждой строки по столбцам.
На этой странице рассматривается, что делает <tr>, где он располагается в таблице, его атрибуты (и почему старые атрибуты упразднены), а также как стилизовать строки с помощью CSS.
<tr> должен располагаться внутри элемента <table> — либо непосредственно, либо внутри одного из элементов группировки строк: <thead>, <tbody> или <tfoot>. Элемент <tr> может содержать только ячейки <td> и <th>.
Каждая строка может содержать разное количество ячеек. Браузер отображает ровно те ячейки, которые вы написали; он не добавляет автоматически пустые ячейки в короткую строку. Чтобы оставить ячейку пустой, добавьте пустой элемент <td> или <th>.
Примечание:
<tr>сам по себе никогда не охватывает столбцы или строки. Атрибутыcolspanиrowspan, объединяющие ячейки по столбцам или строкам, применяются к ячейкам, а не к строке — см.<td>и<th>.
Для управления внешним видом строк и таблиц (цвета, границы, выравнивание) используйте свойства таблиц CSS, а не HTML-атрибуты.
Синтаксис
Тег <tr> используется парно. Содержимое записывается между открывающим (<tr>) и закрывающим (</tr>) тегами.
Синтаксис HTML-тега <tr>
<table>
<tr>
<td>...</td>
</tr>
</table>Пример HTML-тега <tr>:
Пример HTML-тега <tr>
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
table {
width: 80%;
margin: 30px auto;
border-collapse: collapse;
}
th,
td {
padding: 10px;
border: 1px solid #666;
}
</style>
</head>
<body>
<table>
<tr>
<th>Month</th>
<th>Date</th>
</tr>
<tr>
<td>March</td>
<td>10.09.2018</td>
</tr>
<tr>
<td>June</td>
<td>18.07.2018</td>
</tr>
</table>
</body>
</html>Первый <tr> содержит две ячейки заголовка <th>; каждый последующий <tr> содержит две ячейки данных <td>. Поскольку в каждой строке одинаковое количество ячеек, они аккуратно выстраиваются в два столбца.
Группировка строк с помощью <thead>, <tbody> и <tfoot>
Для таблиц крупнее самых простых следует группировать строки. Строки заголовка помещаются внутрь <thead>, строки тела — внутрь <tbody>, а строки итогов/подвала — внутрь <tfoot>. Строки <tr> располагаются внутри этих групп. Это делает разметку понятнее, позволяет вспомогательным технологиям правильно объявлять таблицу и даёт удобные точки для применения CSS.
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
table {
width: 80%;
margin: 30px auto;
border-collapse: collapse;
}
th,
td {
padding: 10px;
border: 1px solid #666;
}
tfoot {
font-weight: bold;
}
</style>
</head>
<body>
<table>
<thead>
<tr>
<th>Item</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<td>Coffee</td>
<td>$3</td>
</tr>
<tr>
<td>Tea</td>
<td>$2</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>Total</td>
<td>$5</td>
</tr>
</tfoot>
</table>
</body>
</html>Атрибуты
Тег <tr> не имеет собственных атрибутов. Он поддерживает только стандартные глобальные атрибуты (такие как class, id, style) и атрибуты событий.
Перечисленные ниже презентационные атрибуты были доступны в старых версиях HTML, но являются устаревшими в HTML5. Вместо них следует использовать CSS.
| Устаревший атрибут | Что он делал | Замена в CSS |
|---|---|---|
align | Горизонтальное выравнивание содержимого ячейки | text-align: left / center / right; |
valign | Вертикальное выравнивание содержимого ячейки | vertical-align: top / middle / bottom; |
bgcolor | Цвет фона строки | background-color: …; |
bordercolor | Цвет границы | border-color: …; |
char / charoff | Выравнивание содержимого по символу | Нет CSS-эквивалента (редко требуется) |
Не используйте align, valign, bgcolor, bordercolor, char или charoff в <tr>. Браузеры могут игнорировать их, и они недействительны в HTML5. Используйте вместо этого text-align, vertical-align и background-color в CSS.
Как стилизовать HTML-тег <tr>
Стилизуйте строки с помощью CSS, обращаясь к элементу <tr>. Распространённый приём — зебра-полосатость (чередующаяся закраска строк), которая облегчает чтение длинных таблиц. Селектор tr:nth-child(even) выбирает каждую вторую строку:
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
table {
width: 80%;
margin: 30px auto;
border-collapse: collapse;
}
th,
td {
padding: 10px;
text-align: left;
border: 1px solid #ccc;
}
thead tr {
background-color: #333;
color: #fff;
}
tbody tr:nth-child(even) {
background-color: #f2f2f2;
}
tbody tr:hover {
background-color: #e0f0ff;
}
</style>
</head>
<body>
<table>
<thead>
<tr>
<th>Name</th>
<th>Role</th>
</tr>
</thead>
<tbody>
<tr>
<td>Alice</td>
<td>Designer</td>
</tr>
<tr>
<td>Bob</td>
<td>Developer</td>
</tr>
<tr>
<td>Carol</td>
<td>Manager</td>
</tr>
<tr>
<td>Dave</td>
<td>Tester</td>
</tr>
</tbody>
</table>
</body>
</html>Здесь thead tr окрашивает строку заголовка, tbody tr:nth-child(even) закрашивает 2-ю и 4-ю строки тела, а tbody tr:hover подсвечивает строку, на которую наведён указатель.