Thomas Luethi: Seitenumbruch in Tabellen

Beitrag lesen

Hallo,

Auf welches Element willst Du es denn anwenden?
Logisch waere auf <tr>.
Ja, ich hab eine endlose Tabelle, und wenn ich die Ausdrucke,
macht er halt einen Schnitt während einer Tabellenzeile.

Du hast meine Frage nicht beantwortet.
Wo steht das "page-break-after:always;" bei Dir?

tbody { page-break-after:always; }
Hab ich gemacht, aber kurze Frage: Ich kenn mich mit CSS nicht so aus, muss ich dann in den Head noch was schreiben? Und kommen die geschweiften Klammern zwischen die Pfeilklammern? (Also z.B. <tbody {page.....;}>

Du hast offenbar noch einige Luecken in CSS und auch in HTML.

Lies mal:
http://selfhtml.teamone.de/css/formate/einbinden.htm
http://selfhtml.teamone.de/css/formate/zentrale.htm#elemente

Ich meinte folgendes:

HTML:
-----
<table>
  <thead>
    <tr><th>Ueberschrift Spalte 1</th><th>Ueberschr. Sp. 2</th></tr>
  </thead>
  <tbody>
    <tr><td>...</td><td>...</td></tr>
    <tr><td>...</td><td>...</td></tr>
    <tr><td>...</td><td>...</td></tr>
    <tr><td>...</td><td>...</td></tr>
  </tbody>
  <tbody>
    <tr><td>...</td><td>...</td></tr>
    <tr><td>...</td><td>...</td></tr>
    <tr><td>...</td><td>...</td></tr>
    <tr><td>...</td><td>...</td></tr>
  </tbody>
</table>

CSS (in externer Datei oder in <STYLE>-Bereich im HEAD der HTML-Datei):
-----------------------------------------------------------------------
tbody { page-break-after:always; }

Alternativ (aber schlechter) koennte man es auch in ein
STYLE-Attribut in jedem einzelnen TBODY-Element schreiben:

<tbody style="page-break-after:always;">
    <!-- ... -->
  </tbody>
  <tbody style="page-break-after:always;">
    <!-- ... -->
  </tbody>

---

Deine Frage wegen "HEAD" habe ich zuerst so verstanden,
dass Du wissen willst, ob neben TBODY auch ein THEAD
notwendig sei.
Zu dieser Frage behauptet SelfHTML:
http://selfhtml.teamone.de/html/tabellen/aufbau.htm#kopf_koerper_fuss
  "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."

Im entsprechenden Abschnitt in der HTML 4.01 Specification
http://www.w3.org/TR/html401/struct/tables.html#h-11.2.3
fand ich die Aussage nicht, dass alle drei (THEAD, TFOOT und TBODY)
obligatorisch sind, sobald man eines oder zwei davon verwendet.

Mindestens ein THEAD mit den Spalten-Ueberschriften halte
ich aber fuer sinnvoll, und nach meinem Verstaendnis
ist auch mein obiges Beispiel, das nur THEAD und TBODY,
aber kein TFOOT enthaelt, gueltig.
Der Validator bestaetigt meine Meinung :-)

---

Du suchst vermutlich:
  page-break-inside:avoid;
Damit weist man den Browser an, Seitenumbrueche im Innern
eines Elements zu vermeiden (und somit sagt man ihm indirekt,
er solle nur vorher oder nachher einen Seitenumbruch machen).

Im konkreten Fall also:
tr { page-break-inside:avoid; }
oder
tbody { page-break-inside:avoid; }

Leider fehlt diese Angabe in SelfHTML (*).
Sie steht aber in der CSS Level 2 Specification:
http://www.w3.org/TR/REC-CSS2/page.html#propdef-page-break-inside

Gruesse,

Thomas

(*) Ich hab's soeben als Verbesserungsvorschlag gemeldet via
http://selfhtml.teamone.de/editorial/feedback.htm