Почему это определение таблицы html не проверяется? - PullRequest
5 голосов
/ 30 ноября 2010

Я получаю эту ошибку проверки W3C HTML:

end tag for "table" which is not finished

для этого кода:

<table id="myTable">
</table>

Это мой DOCTYPE:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

Я думал, что определение таблицы было совершенно в порядке!

Ответы [ 4 ]

6 голосов
/ 30 ноября 2010

Если вы посмотрите на XHTML 1.0 Strict DTD , это означает, что для таблицы требуется хотя бы один из TR ИЛИ TBODY:

<!ELEMENT table
     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
<!ELEMENT caption  %Inline;>
<!ELEMENT thead    (tr)+>
<!ELEMENT tfoot    (tr)+>
<!ELEMENT tbody    (tr)+>
<!ELEMENT colgroup (col)*>
<!ELEMENT col      EMPTY>
<!ELEMENT tr       (th|td)+>
<!ELEMENT th       %Flow;>
<!ELEMENT td       %Flow;>

Для TR, в свою очередь, требуется хотя бы один из TH или TD.

Знак + после имени элемента означает, что он должен появляться хотя бы один раз .

3 голосов
/ 30 ноября 2010

Таблица XHTML 1.0 должна иметь, по крайней мере, tbody или tr дочерний элемент. См. DTD , в частности элемент таблицы :

<!ELEMENT table
     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>

Обратите внимание на последнюю часть.

3 голосов
/ 30 ноября 2010

Я считаю, что в таблице должны быть теги tr и td для проверки. То же самое, когда вы закрываете тег заголовка, не включая тег заголовка

0 голосов
/ 30 ноября 2010

Взгляните на http://validator.w3.org/docs/errors.html

73: конечный тег для X, который еще не закончен

Скорее всего, вы вложили теги и закрыли их в неправильном порядке.Например <p><em>.</p> недопустимо, поскольку <em> должно быть закрыто до <p>.Допустимое вложение:

<p><em>...</em></p>

Другая возможность состоит в том, что вы использовали элемент, для которого требуется дочерний элемент, который вы не включили.Следовательно, родительский элемент «не закончен», не завершен.Например, в HTML элемент должен содержать дочерний элемент, списки требуют соответствующих элементов списка (<ul> и <ol> требуют <li>; <dl> требует <dt> и <dd>) и т. Д.

Вам нужен хотя бы один <tr> внутри вашего стола.

...