CSS 2.1 ::Grundlegendes
CSS-Regeln für Seitenumbrüche
Mit den Regeln für Seitenumbrüche in CSS soll erreicht werden, dass der Inhalt eines Webdokuments beim Ausdruck nicht einfach abgeschnitten, sondern nach sinnvollen Gesichtspunkten aufgeteilt wird. Es wurden zu diesem Zweck fünf Eigenschaften in CSS 2 eingeführt, von denen drei nach CSS 2.1 übernommen wurden.
Leider muss man sagen, dass die Unterstützung der auf dieser Seite vorgestellten Konzepte durch die Browser keinesfalls besser ist als 'mangelhaft'. Es wird noch eine Weile dauern, bis wir diese Regeln zuverlässig in der Produktion einsetzen können.
Nach der Spezifikation können Seitenumbrüche in der Regel nur an den folgenden Stellen im normalen Elementfluss auftreten:
- Zwischen Block- Level- Elementen, die untereinander ausgedruckt werden. In diesem Falle werden eventuell vorhandene
margin
-Bereiche am Fuß der Seite oder am Kopf der folgenden Seite auf0
zurückgesetzt. - Zwischen Inline- Level- Elementen innerhalb eines Block- Level- Elementes.
Darüber hinaus wird ein Seitenumbruch innerhalb eines Elements normalerweise von drei Eigenschaften beeinflusst:
- der Eigenschaft
page-break-inside
des Elternelementes, - der Eigenschaft
page-break-after
des vorhergehenden Elementes - und der Eigenschaft
page-break-before
des nachfolgenden Elementes.
auto
.
Daraus ergeben sich die folgenden Regeln für Seitenumbrüche:
- Zwischen Block- Level- Elementen erfolgt ein erzwungener Seitenumbruch, wenn mindestens eine der massgebenden Eigenschaften
page-break-after
undpage-break-before
aus den angrenzenden Block- Level- Elementen den Wertalways
,left
oderright
enthält. - Ein Seitenumbruch zwischen Block- Level- Elementen ist erlaubt, wenn alle maßgebenden Eigenschaften den Wert
auto
enthalten. - Ein Seitenumbruch zwischen Inline- Level- Elementen ist nur dann zulässig, wenn die Eigenschaft
page-break-inside
des Block- Level- Elementes mit dem Wertauto
besetzt ist. - Ein Seitenumbruch zwischen Block- Level- Elementen ist nicht erlaubt, wenn alle maßgebenden Eigenschaften der angrenzenden Block- Level- Elemente den Wert
auto
enthalten, zusätzlich jedoch die Eigenschaftpage-break-inside
des ersten gemeinsamen Ahnenelements den Wertavoid
aufweist.
Sollten durch diese Regeln nicht ausreichend viele Punkte für Seitenumbrüche möglich sein, braucht das Anwenderprogramm die Regeln 3 und 4 nicht zu beachten. Sind danach immer noch zuwenig Möglichkeiten zum Umbruch der Seite gegeben, kann Punkt 2 ebenfalls ignoriert werden. Damit ist dem Anwenderprogramm jedoch eine virtuelle 'carte blanche' gegeben. Ausnahme ist hier lediglich die Regel 1: erzwungene Seitenumbrüche werden immer durchgeführt.
CSS 2.1 schreibt nicht vor, welche von mehreren möglichen Seitenumbrüchen genutzt werden sollen, auch ist es erlaubt, Seitenumbrüche wann immer es möglich ist, einzufügen. Es werden aber Empfehlungen für Anwenderprogramme für die bestmögliche Verteilung von Seitenumbrüchen gegeben:
- Es sollten so wenig Seitenumbrüche wie möglich auftreten.
- Alle Seiten, die nicht mit einem erzwungenen Seitenumbruch enden, sollten etwa die gleiche Höhe haben.
- Block- Level- Elemente mit einem Rahmen sollten nicht durch Seitenumbrüche unterbrochen werden.
- Seitenumbrüche innerhalb von Tabellen sollten vermieden werden.
- Innerhalb eines floatierten Elements sollten Seitenumbrüche ebenfalls vermieden werden.
Die Spezifikation betont, dass diese Empfehlungen sich auch widersprechen können.
TOP