web-dev-qa-db-ja.com

すべてのテーブルに<tbody>を含める必要がありますか?

すべてのテーブルに<tbody>を含める必要がありますか?規格によると。

34
Jitendra Vyas

theadtfootを定義する場合のみ。これは主に、テーブルに複数のコンテンツが含まれている場合に使用されます。表のデータがtbodyであることが簡単に理解できる場合は、それを安全に省略できます。

42
Aaron Harun

まだIE7を使用しているユーザーのごく一部では、DOMメソッドを使用してテーブルを作成している場合は、trをtbodyタグにカプセル化する必要があります。

これは、すべての主要なブラウザで機能します。

var table = document.createElement('table');
var tbody = document.createElement('tbody');
var tr = document.createElement('tr');
tbody.appendChild(tr);
table.appendChild(tbody);

これはIE7では機能しません:

var table = document.createElement('table');
var tr = document.createElement('tr');
table.appendChild(tr);

テーブルの作成に関する私の簡単なブログ投稿:
http://blog.svidgen.com/2012/05/building-tables-in-ie7-with-javascript.html

自分のプロジェクトでIE7をサポートする努力をしなくなったことは注目に値するかもしれません。 IE <= 7のシェアは、現時点ではほとんどのサイトで無視できる可能性があります。

18
svidgen

HTML 4仕様 の引用:「テーブルにテーブル本体が1つだけ含まれ、テーブルの頭または足のセクションがない場合を除いて、TBODY開始タグは常に必要です。TBODY終了タグは常に安全に省略できます。」

したがって、<tbody>または<thead>がある場合は、<tfoot>タグが必要です。

参照: [〜#〜] mdn [〜#〜]

13
Dumb Guy