2

在添加此表之前,我已经验证了我的网页是否适用于 xhtml 过渡(见下文)。从那时起它就不再验证并说“

文档类型在此处不允许元素“tfoot”<tfoot>

上面提到的元素是在不允许的上下文中找到的。这可能意味着您有错误的嵌套元素——例如“body”部分中的“style”元素而不是“head”内部——或者两个重叠的元素(这是不允许的)。

此错误的一个常见原因是在 HTML 文档中使用了 XHTML 语法。由于 HTML 的隐式关闭元素规则,此错误可能会产生级联效果。例如,在 HTML 文档的“head”部分中为“meta”和“link”使用 XHTML 的“self-closure”标签可能会导致解析器推断“head”部分的结尾和“body”的开头“ 部分(其中不允许使用“链接”和“元”;因此报告了错误)。”

有什么想法吗?我检查了任何打开和未关闭的标签,但没有找到,所以我不知道还有什么问题。

<table>
<caption>
My first table, Anna
</caption>
<thead>
<tr>
<th>
June
</th>
<th>
July
</th>
<th>
August
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
 Data 1
</td>
<td>
Data 2
</td>
<td>
 Data 3
</td>
<td>
Data 4
 </td>
 </tr>
 <tr>
 <td>
   Data a
  </td>
   <td>
 Date b
</td>
<td>
Data c
</td>
<td>
Data d
</td>
</tr>
<tfoot>
<tr>
<td>
Result1
</td>
</tr>
</tfoot>
</tbody>
</table>
4

2 回答 2

13

你有<tfoot>在表的末尾。它应该在<thead>和之间<tbody>。它会出现在底部,但它是在顶部编码的。最初的想法之一是,当加载一个大表时,标题和页脚将很快可见,其余部分填充(尤其是如果正文可在它们之间滚动,则很有用)。在实践中它并没有完全解决,但如果你知道它确实更有意义。

DTD中,它列出了:

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

也就是说, optional caption,然后是零个或多个color colgroup,然后是 optional thead,然后是 optional tfoot,然后是至少一个tbodyor tr

更新:请注意,HTML 5 现在允许将 the<tfoot>放在表的末尾,而不是放在第一个之前<tbody>(或第一个<tr>不在 a 中<thead><tfoot><tbody>因此在单个隐式中<tbody>)。因此,问题中的代码现在将被视为有效。较旧的方法仍然有效,并且可能是可取的。

于 2010-08-17T14:38:49.520 回答
2

tfoot 元素应该在 tbody 元素之外,如下所示:

<table>
<caption>
My first table, Anna
</caption>
<thead>
<tr>
<th>
June
</th>
<th>
July
</th>
<th>
August
</th>
</tr>
</thead>
<tfoot>
<tr>
<td>
Result1
</td>
</tr>
</tfoot>
<tbody>
<tr>
<td>
 Data 1
</td>
<td>
Data 2
</td>
<td>
 Data 3
</td>
<td>
Data 4
 </td>
 </tr>
 <tr>
 <td>
   Data a
  </td>
   <td>
 Date b
</td>
<td>
Data c
</td>
<td>
Data d
</td>
</tr>
</tbody>

这是一个为需要它的人正确嵌套的小例子。

<table>
    <caption></caption>
    <thead>
        <tr>
            <th></th>
        </tr>
    </thead>
    <tfoot>
         <tr>
             <td></td>
         </tr>
    </tfoot>
    <tbody>
         <tr>
             <td></td>
         </tr>
    </tbody>
</table>
于 2010-08-17T14:49:49.667 回答