なぜこれが間違っているのですか?
<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>
タグをテーブル全体または1つのテーブルセル内に配置できます。
TABLE要素の子要素として許可されるのは、要素CAPTION、COL、COLGROUP、THEAD、TFOOT、およびTBODYのみです。HTML仕様のTABLE要素を参照してください。
標準に従って、<form>
タグは内側<td>
または外側にしか配置できないためです。<table>