为什么这是错误的?
<table>
<form>
<tr><td>something something</td/>
</form>
</table>
我说的是表格标签内表格标签的位置。
为什么这是错误的?
<table>
<form>
<tr><td>something something</td/>
</form>
</table>
我说的是表格标签内表格标签的位置。
从DTD:
<!ELEMENT TABLE - -
(CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
<!ELEMENT CAPTION - - (%inline;)* -- table caption -->
<!ELEMENT THEAD - O (TR)+ -- table header -->
<!ELEMENT TFOOT - O (TR)+ -- table footer -->
<!ELEMENT TBODY O O (TR)+ -- table body -->
<!ELEMENT COLGROUP - O (COL)* -- table column group -->
<!ELEMENT COL - O EMPTY -- table column -->
<!ELEMENT TR - O (TH|TD)+ -- table row -->
<!ELEMENT (TH|TD) - O (%flow;)* -- table header cell, table data cell-->
这些是元素中唯一可以包含的table
元素(在这种情况下,在 HTML 4 中,但是您检查了相同类型的文档是否有其他版本,并且没有太大变化)。
另一方面,一个form
元素可以包含任何其他块级元素(其他形式除外):
<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form -->
并且该td
元素可以包含任何“流”元素(如第一个代码块中所示),“流”包括块级元素:
<!ENTITY % flow "%block; | %inline;">
因此,您可以将<form>
标签放置在整个表格周围或一个表格单元格内。
只有元素 CAPTION、COL、COLGROUP、THEAD、TFOOT 和 TBODY 允许作为 TABLE 元素的子元素。请参阅HTML 规范中的 TABLE 元素。
因为你只能根据标准把<form>
标签放在里面<td>
或外面。<table>