MudGuard: table mit vielen tbody, page-break-inside:avoid, Firefox

Hi,

es geht nur um Firefox, da geschlossene Nutzergruppe.

Ich hab eine Tabelle, die ein thead und viele tbody hat (zur Gruppierung der Daten). Die Gruppierung klappt auch wunderbar, die jeweils erste und letzte Zeile der Gruppe läßt sich dank tbody tr:firstchild bzw. tbody tr:lastchild auch wunderbar formatieren.

Auf dem Bildschirm ist also alles ok.

Beim Ausdruck möchte ich es gerne haben, daß auf jeder Seite die Spaltenüberschriften erscheinen (kein Problem, Firefox weiß, wie er thead zu interpretieren hat).
Außerdem hätte ich gerne die Zeilenumbrüche zwischen den Gruppen (sprich: zwischen den tbody-Elementen), nicht mitten in der Gruppe.

Also hab ich für tbody page-break-inside:avoid ins Stylesheet gesetzt. Hatte natürlich gar keine Auswirkung  - darf es ja auch nicht, da die page-break Eigenschaften nur für block-level-Elemente definiert ist (woran ich erst nicht mehr gedacht hatte). tbody ist aber leider kein blocklevel-Element in CSS 2.1.

Ok, das läßt sich ja ändern, also
@media print { #data { display:block; } }
ins Stylesheet.
Das brachte aber nicht die erwünschte Wirkung (es wird nach wie vor auch mitten in den Gruppen umgebrochen.
Dafür gibt es aber die unangenehme Nebenwirkung, daß die tbody-Elemente nur so breit dargestellt werden wie die 1. Spalte des thead-Elements - auch width:100% hilft nicht.
Auch table für display bringt keine Änderung gegenüber display:block.

Also wieder weg mit dem display.

Dann hab ich mal page-break-after:always gesetzt - und siehe da, obwohl tbody kein block-level-Element ist, wird das angewendet.
In gewisser Weise hab ich damit das Ziel erreicht, es wird nicht mehr innerhalb eines tbody umgebrochen. Aber es wird halt leider nach _jeder_ Gruppe umgebrochen.

Die Anzahl der Zeilen pro tbody schwankt im Bereich 1 bis 10 (die Daten kommen aus einer Datenbank) - ist also nicht einfach möglich, einfach bei jedem xten tbody ein page-break-after:always anzugeben.
Selbst wenn ich das anhand der Zeilen machen würde - die Schriftgröße muß flexibel bleiben, und wieviel Platz tatsächlich auf dem Papier ist, weiß ich auch nicht - so weit geht die Vereinheitlichung der Software nicht (ich bin schon froh, daß immerhin einheitlich der aktuelle Firefox verwendet wird).

Kennt jemand eine Lösung für mein Problem?
Hab ich was entscheidendes übersehen? Wenn ja, was?

Testseiten gibt es auch, damit ihr das nicht erst selbst basteln müßt:
einmal ohne Manipulation von display: http://temp.andreas-waechter.de/pagebreak.html
einmal mit display:block für print:   http://temp.andreas-waechter.de/pagebreak2.html

In diesem Fall gibt es auch keinen Unterschied zwischen Print Preview und Print - ihr braucht also kein Papier verschwenden.

Opera macht's übrigens auch falsch - der kriegt ja noch nicht mal die Sache mit dem thead auf die Reihe ...
Vom IE red ich lieber gar nicht ...

XHTML und CSS sind selbstverständlich W3C-Validator-geprüft und für gut befunden worden.

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
Schreinerei Waechter
Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.