5

我收到了这个 W3C HTML 验证错误:

end tag for "table" which is not finished

对于此代码:

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

这是我的文档类型:

<!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

4 回答 4

6

如果您查看XHTML 1.0 Strict DTD,它指定一个表至少需要TR一个OR 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

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

于 2010-11-30T19:29:01.873 回答
3

一个 XHTML 1.0 表必须至少有一个tbody或一个tr子表。请参阅DTD,特别是table 元素

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

注意最后一部分。

于 2010-11-30T19:28:47.243 回答
3

我相信表内应该有一个 tr 和 td 标签来验证。当你关闭一个不包含标题标签的头部标签时也是一样的

于 2010-11-30T19:25:47.327 回答
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><dd>),等等。

<tr>你的桌子里至少需要一个。

于 2010-11-30T19:29:10.260 回答