Более одного заголовка таблицы

Может ли таблица иметь более одного заголовка таблицы? Я имею в виду, что это законно по стандартам w3c либо в html (4/5), либо в xhtml.

Ответ 1

Я проверил тест, предложенный Пеккой на validator.w3.org, и он передал все 3 HTML4 HTML5 XHTML 1.0.

Таблица может иметь более 1 TH и TBODY

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -->
<!-- <!DOCTYPE html> -->

<html >
    <head><title>hi</title></head>
    <body>
        <table>
            <tr>
                <th></th>
                <th>1 </th>
                <th>500 </th>
            </tr>
            <tr>
                <th></th>
                <th>1 </th>
                <th>500 </th>
            </tr>
        </table>
    </body>
</html>

Ответ 2

Заголовок таблицы выражается тегом <thead>. Тег <th> является ячейкой заголовка, поэтому неясно, что вы имели в виду, потому что в вашем примере вы использовали только теги <th>, размещенные в разделе body.

Конечным источником мудрости является спецификация HTML5, в которой говорится:

[Содержимое элемента <table>:] необязательно элемент caption, за которым следуют ноль или более элементов colgroup, а затем необязательно с помощью элемента thead, [...]

То же самое сказано в спецификации HTML4, поэтому таблица может иметь только один заголовок.

С другой стороны, элементы ячейки заголовка (<th>) могут быть помещены в любой раздел таблицы - заголовок, нижний колонтитул или тело. (То же самое относится к ячейкам данных - <td>)

A <th> в разделе body представляет заголовок заголовка строки или столбца заголовка или другие заголовки, в зависимости от атрибута "scope" или контекста.

Ответ 3

"Может ли таблица иметь более одного заголовка таблицы": Да

"Является ли он законным согласно стандартам w3c либо в html (4/5), либо в xhtml": Да