Andreas Korthaus: warum Reihenfolge <thead><tfoot><tbody>?

Hallo!

VErstehe http://selfhtml.teamone.de/html/tabellen/aufbau.htm#kopf_koerper_fuss, demnach ist folgende Reihenfolge der Tags zwingend vorgeschreiben:

<thead> => <tfoot> => <tbody>

Wieso das? Seit wann kommt ein "foot" vorm "body"? Und wieso _muss_ man ale 3 verwenden, ich kann mir vorstellen das <tfoot> nicht überall sinnvol ist!
Genauso finde ich das es nicht immer sinnvoll ist die Elemente "head" und "foot" nur einmal zu verwenden, denn dies schreibt zwingend eine einfachste Tabelle mit 3 Bereichen untereinander vor.
Wieso ist man hier so ristriktiv?

Grüße
Andreas

  1. Hio Andreas,

    http://selfhtml.teamone.de/html/tabellen/aufbau.htm#kopf_koerper_fuss, demnach ist folgende Reihenfolge der Tags zwingend vorgeschreiben:

    <thead> => <tfoot> => <tbody>

    Wieso das? Seit wann kommt ein "foot" vorm "body"? Und wieso _muss_ man ale 3 verwenden, ich kann mir vorstellen das <tfoot> nicht überall sinnvol ist!

    http://www.w3.org/TR/html4/struct/tables.html#h-11.2.3

    gl & hf

    Thorsten

  2. Hi,

    <thead> => <tfoot> => <tbody>
    Wieso das? Seit wann kommt ein "foot" vorm "body"?

    für seitenorientierte Ausgabemedien muß bereits am Anfang bekannt sein, wieviel Platz der Tabellenfuß benötigt, damit ermittelt werden kann, wieviele Zeilen des tbody auf eine Seite passen.
    Wäre tfoot am Ende der Tabelle, müßte erst die gesamte Tabelle eingelesen werden, bevor mit der Darstellung begonnen werden könnte.

    Und wieso _muss_ man ale 3 verwenden, ich kann mir vorstellen das <tfoot> nicht überall sinnvol ist!

    Wie kommst Du darauf, daß man alle 3 verwenden muß?
    <!ELEMENT TABLE - - (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
    sagt ganz eindeutig, daß sowohl thead als auch tfoot optional sind (caption, col, und colgroup ebenfalls).
    Das einzige, was zwingend vorgeschrieben ist, ist ein tbody, dessen tags jedoch laut <!ELEMENT TBODY O O (TR)+ -- table body --> für HTML optional sind bzw. laut <!ELEMENT table (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))> durch eine Menge tr ersetzt werden kann.

    Genauso finde ich das es nicht immer sinnvoll ist die Elemente "head" und "foot" nur einmal zu verwenden,

    Wozu willst Du mehrere head-Elemente verwenden? head wird doch sowieso nicht dargestellt und enthält nur styles, scripts, meta-Angaben für die Seite und so Zeug. Da gibt es keinen Grund, head mehrfach zu verwenden. Ein Element namens foot gibt es nicht.

    Achso, Du meinst thead und tfoot. Dann sag das doch auch. thead und tfoot sind immer noch optional (s.o.).

    denn dies schreibt zwingend eine einfachste Tabelle mit 3 Bereichen untereinander vor.

    Nein, nicht mit 3. Mit mindestens einem (s.o.), aber ansonsten beliebig vielen. Aber davon maximal je 1 thead und 1 tfoot. tbody muß mindestens einmal, darf aber auch unendlich oft vorkommen.

    Wieso ist man hier so ristriktiv?

    Verschiedene Tabellenköpfe/Füße sind bei EINER Tabelle nicht sinnvoll.
    Wenn sich thead/tfoot ändert, ist das halt eine neue Tabelle.

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    1. Hallo!

      http://selfhtml.teamone.de/html/tabellen/aufbau.htm#kopf_koerper_fuss

      Danke für die Antwort, ich zitier nur einmal von meinem obigen Link:

      "Beachten Sie:

      Wenn Sie mit den Elementen thead, tfoot und tbody arbeiten, müssen Sie immer alle drei Elemente verwenden, und zwar immer in der Reihenfolge thead->tfoot->tbody. Die Elemente thead und tfoot dürfen pro Tabelle nur einmal vorkommen, das tbody-Element einmal oder beliebig oft."

      Somit bist Du Dir sicher das dort ein Fehler in SELFHTML vorliegt, oder interpretiere ich hier was falsch?

      Viel Grüße
      Andreas

      1. Hi,

        Wenn Sie mit den Elementen thead, tfoot und tbody arbeiten, müssen Sie immer alle drei Elemente verwenden, und zwar immer in der Reihenfolge thead->tfoot->tbody. Die Elemente thead und tfoot dürfen pro Tabelle nur einmal vorkommen, das tbody-Element einmal oder beliebig oft."

        Somit bist Du Dir sicher das dort ein Fehler in SELFHTML vorliegt, oder interpretiere ich hier was falsch?

        Wenn das so dort steht, ist es definitiv falsch.
        Wäre ja nicht die einzige Stelle...

        <!ELEMENT TABLE - - (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>

        , legt fest, daß die Teile in dieser Reihenfolge vorkommen müssen.
        Das ? bedeutet, daß das entsprechende Teil 0 oder 1 mal vorkommen kann.

        • bedeutet, daß das Teil mindestens einmal vorkommen muß

        also bedeutet der Abschnitt
        THEAD?, TFOOT?, TBODY+

        zuerst kann ein thead vorkommen, muß aber nicht.
        an zweiter Stelle kann ein tfoot vorkommen, muß aber nicht.
        an dritter Stelle muß mindestens ein tbody vorkommen (aber dessen tags  sind optional).

        bei XHTML ist es ähnlich, nur daß dort (weil es ja keine optionalen tags gibt), anstelle des tbody+ auch tr+ geben kann ( | bedeutet exklusives oder):

        thead?, tfoot?, (tbody+|tr+)

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.