Почему внутренние таблицы 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>© 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>© Bomb Voyage</td>
</tr>
</tfoot>
</table>
</body>
</html>
Допустимый номер: HEAD, FOOT, BODY; что не имеет никакого смысла.
Помещение стопы в нижней части стола будет поддерживать аналогию между столом и человеческим телом. Но по какой-то причине этот порядок считается недействительным.
Кто-нибудь знает, почему?
Ответы
Ответ 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