为什么这个html表定义没有验证?

时间:2010-11-30 19:23:21

标签: html w3c-validation html-table

我收到此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 个答案:

答案 0 :(得分:6)

如果您查看XHTML 1.0 Strict DTD,则会指定表要求至少有一个TRTBODY

<!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又需要THTD中的至少一个。

元素名称后面的+符号表示它应至少出现

答案 1 :(得分:3)

我相信表中应该有一个tr和td标签来验证。当你关闭一个没有标题标签的头标签时,它是一样的

答案 2 :(得分:3)

XHTML 1.0表必须至少包含tbodytr个孩子。请参阅the DTD,特别是table element

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

请注意最后一部分。

答案 3 :(得分:0)

查看http://validator.w3.org/docs/errors.html

73:X的结束标记未完成

最有可能的是,嵌套标签并以错误的顺序关闭它们。例如<p><em></p>是不可接受的,因为必须在<em>之前关闭<p>。可接受的嵌套是:

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

另一种可能性是你使用了一个需要你没有包含的子元素的元素。因此,父元素“未完成”,未完成。例如,在HTML中元素必须包含子元素,列表需要适当的列表项(<ul><ol>需要<li>; <dl>需要<dt>和{ {1}}),等等。

您的桌子中至少需要一个<dd>