@page
Baseline
2024
*
Newly available
Since December 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
* Some parts of this feature may have varying levels of support.
Die @page At-Regel ist eine CSS-At-Regel, die verwendet wird, um verschiedene Aspekte gedruckter Seiten zu ändern. Sie zielt auf die Dimensionen, die Orientierung und die Ränder der Seite ab und modifiziert diese. Die @page At-Regel kann verwendet werden, um alle Seiten eines Ausdrucks oder einen Teil davon mittels ihrer verschiedenen Pseudoklassen anzusprechen.
Syntax
/* Targets all the pages */
@page {
size: 8.5in 9in;
margin-top: 4in;
}
/* Targets all even-numbered pages */
@page :left {
margin-top: 4in;
}
/* Targets all odd-numbered pages */
@page :right {
size: 11in;
margin-top: 4in;
}
/* Targets all selectors with `page: wide;` set */
@page wide {
size: a4 landscape;
}
@page {
/* margin box at top right showing page number */
@top-right {
content: "Page " counter(pageNumber);
}
}
Seiteneigenschaften
Die @page At-Regel kann nur Seitenbeschreibungen und Margin-At-Regeln enthalten. Die folgenden Beschreibungen wurden von mindestens einem Browser implementiert:
margin-
Gibt die Seitenränder an. Einzelne Rand-Eigenschaften wie
margin-top,margin-right,margin-bottomundmargin-leftkönnen ebenfalls verwendet werden. page-orientation-
Gibt die Orientierung der Seite an. Dies hat keinen Einfluss auf das Layout der Seite; die Drehung wird nach dem Layout im Ausgabemedium angewendet.
size-
Bestimmt die Zielgröße und Orientierung des die Seite enthaltenen Blockes. Im allgemeinen Fall, wenn ein Seitenblock auf ein Blatt projiziert wird, zeigt es auch die Größe des Ziel-Seitenblattes an.
Die Spezifikation erwähnt, dass die folgenden CSS-Eigenschaften auf Seitenboxen über die @page-At-Regel anwendbar sein sollen. Diese werden jedoch noch nicht von einem Benutzeragenten unterstützt.
Verbleibende Seiteneigenschaften
| Merkmal | CSS-Eigenschaften |
|---|---|
| bidi-Eigenschaften | direction |
| Hintergrundeigenschaften | background-color |
| background-image | |
| background-repeat | |
| background-attachment | |
| background-position | |
| background | |
| Randeigenschaften | border-top-width |
| border-right-width | |
| border-bottom-width | |
| border-left-width | |
| border-width | |
| border-top-color | |
| border-right-color | |
| border-bottom-color | |
| border-left-color | |
| border-color | |
| border-top-style | |
| border-right-style | |
| border-bottom-style | |
| border-left-style | |
| border-short-style | |
| border-top | |
| border-right | |
| border-bottom | |
| border-left | |
| border | |
| Zählereigenschaften | counter-reset |
| counter-increment | |
| Farbe | color |
| Schriftarteigenschaften | font-family |
| font-size | |
| font-style | |
| font-variant | |
| font-weight | |
| font | |
| Höheneigenschaften | height |
| min-height | |
| max-height | |
| Zeilenhöhe | line-height |
| Randeigenschaften | margin-top |
| margin-right | |
| margin-bottom | |
| margin-left | |
| margin | |
| Umrisseigenschaften | outline-width |
| outline-style | |
| outline-color | |
| outline | |
| Abständeigenschaften | padding-top |
| padding-right | |
| padding-bottom | |
| padding-left | |
| padding | |
| Anführungszeichen | quotes |
| Texteigenschaften | letter-spacing |
| text-align | |
| text-decoration | |
| text-indent | |
| text-transform | |
| white-space | |
| word-spacing | |
| Sichtbarkeit | visibility |
| Breiteeigenschaften | width |
| min-width | |
| max-width |
Beschreibung
Die @page-Regel definiert Eigenschaftten der Seitenbox. Die @page At-Regel ist über die CSS-Objektmodell-Schnittstelle CSSPageRule zugänglich.
Hinweis:
Das W3C diskutiert, wie mit viewport-bezogenen <length> Einheiten, vh, vw, vmin und vmax umgegangen wird. Verwenden Sie diese Einheiten vorerst nicht innerhalb einer @page At-Regel.
Verwandte Eigenschaften
Die @page At-Regel ermöglicht es dem Benutzer, der Regel einen Namen zuzuweisen, der dann in einer Deklaration durch die Verwendung der page Eigenschaft aufgerufen wird.
page-
Ermöglicht einen Selektor, eine benutzerdefinierte benannte Seite zu nutzen.
Formale Syntax
@page =
@page <page-selector-list>? { <declaration-rule-list> }
<page-selector-list> =
<page-selector>#
<page-selector> =
[ <ident-token>? <pseudo-page>* ]!
<pseudo-page> =
: [ left | right | first | blank ]
Wobei der <page-body> umfasst:
- Seiteneigenschaften
- Seitenrand-Eigenschaften
und <pseudo-page> diese Pseudoklassen repräsentiert:
Margin-At-Regeln
Die Margin-At-Regeln werden innerhalb der @page At-Regel verwendet. Jede zielt auf einen anderen Abschnitt der gedruckten Dokumentseite ab und gestaltet den Bereich der gedruckten Seite basierend auf den im Stilblock festgelegten Eigenschaftswerten:
@page {
@top-left {
/* page-margin-properties */
}
}
@top-left zielt auf den oberen linken Bereich des Dokuments ab und wendet die Änderungen basierend auf den Seitenrand-Eigenschaften an.
Andere Margin-At-Regeln umfassen:
@top-left-corner
@top-left
@top-center
@top-right
@top-right-corner
@bottom-left-corner
@bottom-left
@bottom-center
@bottom-right
@bottom-right-corner
@left-top
@left-middle
@left-bottom
@right-top
@right-middle
@right-bottom
Seitenrand-Eigenschaften
Die Seitenrand-Eigenschaften sind der Satz von CSS-Eigenschaften, der in einer beliebigen einzelnen Margin-At-Regel gesetzt werden kann. Sie umfassen:
Seitenrand-Eigenschaften
| Merkmal | CSS-Eigenschaften |
|---|---|
| bidi-Eigenschaften | direction |
| Hintergrundeigenschaften | background-color |
| background-image | |
| background-repeat | |
| background-attachment | |
| background-position | |
| background | |
| Randeigenschaften | border-top-width |
| border-right-width | |
| border-bottom-width | |
| border-left-width | |
| border-width | |
| border-top-color | |
| border-right-color | |
| border-bottom-color | |
| border-left-color | |
| border-color | |
| border-top-style | |
| border-right-style | |
| border-bottom-style | |
| border-left-style | |
| border-short-style | |
| border-top | |
| border-right | |
| border-bottom | |
| border-left | |
| border | |
| Zählereigenschaften | counter-reset |
| counter-increment | |
| Inhalt | content |
| Farbe | color |
| Schriftarteigenschaften | font-family |
| font-size | |
| font-style | |
| font-variant | |
| font-weight | |
| font | |
| Höheneigenschaften | height |
| min-height | |
| max-height | |
| Zeilenhöhe | line-height |
| Randeigenschaften | margin-top |
| margin-right | |
| margin-bottom | |
| margin-left | |
| margin | |
| Umrisseigenschaften | outline-width |
| outline-style | |
| outline-color | |
| outline | |
| Abständeigenschaften | padding-top |
| padding-right | |
| padding-bottom | |
| padding-left | |
| padding | |
| Anführungszeichen | quotes |
| Texteigenschaften | letter-spacing |
| text-align | |
| text-decoration | |
| text-indent | |
| text-transform | |
| white-space | |
| word-spacing | |
| Vertikale Ausrichtung | vertical-align |
| Sichtbarkeit | visibility |
| Breiteeigenschaften | width |
| min-width | |
| max-width | |
| z-Index | z-index |
Benannte Seiten
Benannte Seiten ermöglichen, ein pro-Seiten-Layout zu gestalten und Seitenumbrüche auf deklarative Weise beim Drucken hinzuzufügen.
Benannte Seiten können über die page Eigenschaft angewendet werden. Dies erlaubt es dem Benutzer, unterschiedliche Seitenkonfigurationen zur Nutzung in Drucklayouts zu erstellen.
Ein Beispiel dafür findet sich in den page Beispielen.
Beispiele
>Die Verwendung der size-Eigenschaft zur Änderung der Seitenorientierung
Dieses Beispiel zeigt, wie die <section>s in einzelne Seiten im landscape-Format mit einem 20% Rand bei jedem Ausdruck aufgeteilt werden können.
Durch den Klick auf die Druckschaltfläche wird ein Druckdialog geöffnet, wobei die HTML-Abschnitte in einzelne Seiten aufgeteilt sind.
<button>Print page</button>
<article>
<section>
<h2>Header one</h2>
<p>Paragraph one.</p>
</section>
<section>
<h2>Header two</h2>
<p>Paragraph two.</p>
</section>
<section>
<h2>Header three</h2>
<p>Paragraph three.</p>
</section>
</article>
const button = document.querySelector("button");
button.addEventListener("click", () => {
window.print();
});
@page {
size: landscape;
margin: 2cm;
}
section {
page-break-after: always;
break-after: page;
}
@media print {
button {
display: none;
}
}
@page Pseudoklassen-Beispiele
Sehen Sie sich die verschiedenen Pseudoklassen der @page für Beispiele an.
Spezifikationen
| Specification |
|---|
| CSS Paged Media Module Level 3> # at-page-rule> |
| CSS Logical Properties and Values Level 1> # page> |
Browser-Kompatibilität
Siehe auch
- Die
pageEigenschaft - Der
@pagesizeDeskriptor - CSS Paged Media Modul
- [META] CSS Paged Media Module Level 3 Bugzilla zur Verfolgung des Fortschritts zu diesem Thema (seitenbasierte Zähler, etc.)