テーブル内の複数の<thead> / <tbody>は有効ですか?


81

これに似たリストのリストを想像してみてください。

var list = [
  { name: 'group1', 
    items: [ 1, 2, 3, 4, 5 ]
  },
  { name: 'group2', 
    items: [ 1, 2, 3, 4, 5 ]
  },
  etc...
]

今引数を「データ用に設計されていないテーブル」全体を忘れて、私はのための単一のテーブルを表示したいlistと別々持つ<thead><tbody>の各エントリのためにlist

これは技術的に有効ですか?これはブラウザで機能しますが、私のクモの感覚はこれにうずきます。


1
あなたは間違いなく複数のtbodiesを持つことができます、私はtheadについて見るためにスペックをチェックしなければならないでしょう。
ケビンB

2
@KevinB:IIRCは最大で1つのヘッダーと1つの
ゼータ

1
@unor私の質問は、複数の関係している<thead><tfooter>要素、ではありません<tbody>。それらは同じではなく、別々のルールによって指示されます。
AlbertEngelB 2015

@ Dropped.on.Caprica:ああ、そうだね、あなたも複数の thead要素が必要だったのを見逃した。私は投票を撤回しました。
unor

回答:


120

<tbody>要素はいくつでも持つことができますが、<thead>とのそれぞれが1つだけ<tfoot>です。参照

コンテンツモデル:

この順序で:オプションでキャプション要素、続いて0個以上のcolgroup要素、オプションでaad要素、続いて0個以上のtbody要素または1つ以上のtr要素、オプションでtfoot要素、オプションで1つと混合以上のスクリプトサポート要素。


またth scope=rowgroup、レギュラー内でtrそれぞれを説明するために使用できますtbody「例」を参照してください。
CletusW

11

多くても1つでありますtheadし、1tfoot 許可され、追加のヘッダーを作成するべきではありませんので、。結局のところ、thatheadは、「時刻」、「温度」、「現在発砲している猫の数」など、列に意味を与えます。

リスト内のエントリが関連している場合、それらはすべて同じテーブルにある必要があり、その関係を表示するためのフィッティングヘッダーを提供する必要があります。

エントリが実際に無関係である場合は、それらすべてに1つのテーブルを提供する必要があります。すべてのテーブルに同じCSSを適用して、良い結果を得ることができます。


5
「リスト内のエントリが関連している場合、それらはすべて同じテーブルにある必要があり、その関係を表示するための適切なヘッダーを提供する必要があります」-非常に長いテーブルで同じヘッダーを繰り返すことが望ましい場合があると思います。列が何であるかを覚えておくために、一番上にスクロールして戻る必要はありません。もちろん、これには他の解決策もあります(たとえば、JavaScriptで「スティッキー」なテーブルヘッダーを使用するか、テーブルの行要素でCSSを使用して、他の行と視覚的に異なるようにします)。
マイク

5

id属性のようなものだと思います。それらは一意であるはずですが、実際には同じページで再利用でき、それでも選択できます。 とはいえ、それができるからといって、それが行われるべきだという意味ではありません。

私はそれに反対することをお勧めします。


3
複数を有するすべて間違ってであります何もありません<tbody>が、ちょうど1が存在することができる仕様に応じて<thead>一つ<tfoot>
とがった2013

私の知る限り、彼はそれをすることをまったく提案していませんでした。ブラウザで動作したと言っているだけですか?
AlbertEngelB 2013

@Sebas最初の文は、idと同じように、上にさらに追加できることを知らせていますが、そうすべきではありません。
ジャスティン

@Sebas Better?時々私の頭の中にあるものは私が置いたものよりも明確です:S
ジャスティン

いいえ、完全にお詫び申し上げます。私のせいです。乾杯!
セバス2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.