2

なぜこれが間違っているのですか?

<table>
  <form>
    <tr><td>something something</td/>
  </form>
</table>

テーブルタグ内のフォームタグの位置について話しています。

4

3 に答える 3

5

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つのテーブルセル内に配置できます。

于 2012-06-21T12:54:50.787 に答える
2

TABLE要素の子要素として許可されるのは、要素CAPTION、COL、COLGROUP、THEAD、TFOOT、およびTBODYのみです。HTML仕様のTABLE要素を参照してください。

于 2012-06-21T12:54:50.013 に答える
1

標準に従って、<form>タグは内側<td>または外側にしか配置できないためです。<table>

于 2012-06-21T12:55:32.440 に答える