Подтвердить что ты не робот

Почему внутренние таблицы TABLE должны пройти ТЕАД TFOOT TBODY для проверки?

Я часто использую элементы THEAD, TBODY и TFOOT, чтобы разделить мои таблицы данных на разделы, которые можно отдельно решать с помощью CSS. Я также понимаю, что всегда есть неявный тег TBODY.

Что меня озадачивает - это порядок, который они должны выполнить для проверки. ЭТА таблица проверяет:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Table Validation Test</title>
</head>
<body>

<table>

<thead>
<tr>
    <th scope="col">Enemies List</th>
</tr>
</thead>

<tfoot>
<tr>
    <td>&copy; Bomb Voyage</td>
</tr>
</tfoot>

<tbody>
<tr>
    <td>Mr. Incredible</td>
    <td>Elastigirl</td>
    <td>Gazer Beam</td>
</tr>
</tbody>

</table>
</body>
</html>

Но этого не будет:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Table Validation Test</title>
</head>
<body>

<table>

<thead>
<tr>
    <th scope="col">Enemies List</th>
</tr>
</thead>

<tbody>
<tr>
    <td>Mr. Incredible</td>
    <td>Elastigirl</td>
    <td>Gazer Beam</td>
</tr>
</tbody>


<tfoot>
<tr>
    <td>&copy; Bomb Voyage</td>
</tr>
</tfoot>

</table>
</body>
</html>

Допустимый номер: HEAD, FOOT, BODY; что не имеет никакого смысла.

Помещение стопы в нижней части стола будет поддерживать аналогию между столом и человеческим телом. Но по какой-то причине этот порядок считается недействительным.

Кто-нибудь знает, почему?

4b9b3361

Ответ 1

В спецификации есть причина:

TFOOT должен появиться перед TBODY в определении TABLE, чтобы пользовательские агенты могли визуализировать ногу, прежде чем получать все (потенциально многочисленные) строки данных.

http://www.w3.org/TR/html401/struct/tables.html#h-11.2.3

Я не знаю, действительно ли какие-либо браузеры следовали этому поведению, и он был изменен в HTML5 для обработки как порядка HTML 4, так и более логичного порядка:

В этом порядке: необязательно элемент caption, за которым следуют ноль или более элементов colgroup, затем необязательно с помощью элемента thead, за которым следует необязательно элемент tfoot, за которым следует либо ноль, либо больше элементов tbody или один или несколько элементов tr, необязательно элементом tfoot (но в нем может быть только один дочерний элемент tfoot).

http://www.w3.org/TR/html5/tabular-data.html