it-swarm.com.de

Mehrere <thead> / <tbody> in der Tabelle Gültig?

Stellen Sie sich eine Liste mit ähnlichen Listen vor:

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

Nachdem ich nun das ganze Argument "Tabellen sind für Daten nicht Design" vergessen habe, wollte ich eine einzelne Tabelle für list anzeigen und eine separate <thead> und <tbody> für jeden Eintrag in list.

Ist das technisch gültig? Dies funktioniert im Browser, aber meine Spinnengefühle prickeln auf diesem .

73
AlbertEngelB

Sie können so viele <tbody> - Elemente haben, wie Sie möchten, aber nicht mehr als jeweils eines von <thead> Und <tfoot>. Referenz :

Inhaltsmodell:

In dieser Reihenfolge: optional ein Beschriftungselement, gefolgt von null oder mehreren Colgroup-Elementen, , optional gefolgt von einem Thead-Element, gefolgt von null oder mehreren Tbody-Elementen oder einem oder mehreren Tr-Elementen, optional gefolgt von durch ein tfoot-Element , optional gemischt mit einem oder mehreren skriptunterstützenden Elementen.

109
Jon

Es gibt höchstens einen thead und einen tfootzulässig , daher sollten Sie keine zusätzlichen Header erstellen. Immerhin gibt das th in einem thead Ihren Spalten eine Bedeutung wie "Tageszeit", "Temperatur", "Anzahl der Katzen, die gerade in Flammen stehen".

Wenn die Einträge in Ihrer Liste verwandt sind, sollten sie sich alle in derselben Tabelle befinden, und Sie sollten eine passende Kopfzeile bereitstellen, um diese Beziehung anzuzeigen.

Wenn die Einträge tatsächlich nicht zusammenhängen, sollten Sie für jeden eine einzige Tabelle bereitstellen. Sie können immer noch dasselbe CSS auf jede Tabelle anwenden, um ein gutes Ergebnis zu erzielen.

10
Zeta

Ich halte es für genau wie id Attribute. Sie sollten eindeutig sein, aber Sie können sie tatsächlich auf derselben Seite wiederverwenden und sie trotzdem auswählen. Das heißt nicht, dass es getan werden sollte, nur weil es getan werden kann.

Ich würde dagegen empfehlen.

4
Justin