The StyleWorksCSS { Referenz · Labor · Übungen }
  1. Startseite
  2. Lernen
  3. CSS-Regeln für Seitenumbrüche

Grundlegendes

CSS-Regeln für Seitenumbrüche

Grundlegendes zu Cascading Style Sheets: CSS-Regeln für Seitenumbrüche – Konzept, Regeln aus der Spezifikation und Beispiele.

Erstveröffentlichung Lesezeit 4 min

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 auf 0 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 Ausgangswert aller drei Eigenschaften ist auto.

Daraus ergeben sich die folgenden Regeln für Seitenumbrüche:

  1. Zwischen Block- Level- Elementen erfolgt ein erzwungener Seitenumbruch, wenn mindestens eine der massgebenden Eigenschaften page-break-after und page-break-before aus den angrenzenden Block- Level- Elementen den Wert always, left oder right enthält.
  2. Ein Seitenumbruch zwischen Block- Level- Elementen ist erlaubt, wenn alle maßgebenden Eigenschaften den Wert auto enthalten.
  3. Ein Seitenumbruch zwischen Inline- Level- Elementen ist nur dann zulässig, wenn die Eigenschaft page-break-inside des Block- Level- Elementes mit dem Wert auto besetzt ist.
  4. 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 Eigenschaft page-break-inside des ersten gemeinsamen Ahnenelements den Wert avoid aufweist.
Grafische Darstellung der Seitenumbruchsregeln: Grüne Ticks zeigen einen möglichen Seitenumbruch, Rote Kreuze zeigen, wo ein Umbruch verboten ist.

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.

Der heutige Stand der Unterstützung

Die im Text beklagte Lückenhaftigkeit hat sich zum großen Teil erledigt, und zwar genau bei den drei Eigenschaften, die in CSS 2.1 übernommen wurden. Ein Umbruch vor oder nach einem Element und die Verhinderung eines Umbruchs innerhalb eines Elements funktionieren heute in allen verbreiteten Browsern, ebenso die beiden vererbten Angaben zu den Restzeilen mit ihrem Ausgangswert von zwei.

Nicht durchgesetzt haben sich die beiden Eigenschaften, die CSS 2.1 nicht übernommen hat, sowie die Schneidmarken und die benannten Seiten. Die Angabe zum Seitenformat innerhalb der At-Regel für die Seite ist dagegen verwendbar geworden und bestimmt Größe und Ausrichtung. Für die Praxis heißt das: Was ein Druck-Stylesheet üblicherweise braucht, ist verfügbar – die feineren Setzerfunktionen sind es nicht.

Die allgemeineren Nachfolger

Ein späteres Modul hat die drei Umbruch-Eigenschaften durch allgemeinere ersetzt, die nicht nur für Seiten gelten, sondern auch für Spalten und für Regionen. Sie heißen anders, nehmen zusätzliche Werte an und decken die alten Werte vollständig ab; die alten Namen bleiben als Kurzform weiter gültig, sodass bestehende Druck-Stylesheets unverändert funktionieren.

Praktisch bedeutsam ist die Erweiterung vor allem beim mehrspaltigen Satz: Dieselbe Angabe, die eine Überschrift nicht vom folgenden Absatz trennen lässt, verhindert nun auch, dass beide in verschiedenen Spalten landen. Für ein reines Druck-Stylesheet ändert sich nichts – dort tun die alten Namen weiterhin genau das, was der Text oben beschreibt.

Was ein Druck-Stylesheet tatsächlich braucht

Die Umbruchsteuerung ist der kleinere Teil der Arbeit. Wichtiger sind vier andere Dinge. Erstens werden Hintergründe standardmäßig nicht gedruckt, weshalb alles, was seine Bedeutung allein aus einer Hintergrundfarbe bezieht, auf dem Papier verschwindet. Zweitens ergibt eine mehrspaltige Bildschirmanordnung auf einer Seite selten Sinn; der Weg führt über eine einspaltige Darstellung mit ausgeblendeter Navigation.

Drittens sind Verweise auf Papier wertlos, solange ihr Ziel nicht dabeisteht – über den generierten Inhalt und die Attributfunktion lässt sich die Adresse in Klammern hinter den Verweistext setzen. Und viertens gehören Maße im Druck-Stylesheet in eine absolute Einheit, weil das Papier eine feste Größe hat und ein Pixel dort nur über einen Umrechnungsfaktor definiert ist. Der Punkt ist die naheliegende Wahl.