web-dev-qa-db-ja.com

ブラウザーがtbody要素をテーブル要素に挿入するのはなぜですか?

生のHTMLとJQueryを使用していくつかのアイデアをいじっていました。私がしたことの1つは、行のセットを持つテーブル要素を作成することでした。

<table id="MyTable" >
    <tr>
        <td>Title</td>
    </tr>
    <tr>
        <td>1</td>
    </tr>
    <tr>
        <td>2</td>
    </tr>
    <tr>
        <td>3</td>
    </tr>
    <tr>
        <td>4</td>
    </tr>
</table>

しかし、FireFox + Firebug、IE8 Developer Toolbar、またはGoogle Chrome JavaScript Debugger ...でコードを表示すると、それらすべてにtbody要素があるすべてのtrノードを囲みます。

私はこの出来事に反対していません...しかし、この標準的な振る舞いですか?

57
Chris Brandsma

http://htmlhelp.com/reference/html40/tables/tbody.html

TBODY要素は、テーブル内のデータ行のグループを定義します。 TABLEには、オプションのTFOOTの後に続く1つ以上のTBODY要素が必要です。 TBODY終了タグは常にオプションです。テーブルにTBODYが1つだけ含まれ、THEADまたはTFOOTが含まれていない場合、開始タグはオプションです。

したがって、そこには常にtbodyがあり(開始タグと終了タグの両方がオプションで省略されている場合もあります)、使用しているツールはそれを表示するのに適切です。

一方、theadまたはtfootは、明示的に含めない限り存在しません。その場合、tbodyも明示的に含める必要があります。

54
ysth

はい、tbodyはテーブルの本体を示す標準要素です。マークアップに含める必要はありませんが、ご覧のとおりDOMに含まれます。

13