@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 darauf ab, die Dimensionen, die Ausrichtung und die Ränder der Seite zu modifizieren. Die @page-At-Regel kann verwendet werden, um alle Seiten eines Ausdrucks oder einen Teil davon mit ihren verschiedenen Pseudoklassen zu bearbeiten.
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 Seitendeskriptoren und Margin-At-Regeln enthalten. Die folgenden Deskriptoren wurden von mindestens einem Browser implementiert:
margin-
Gibt die Seitenränder an. Individuelle Abstands-Eigenschaften wie
margin-top,margin-right,margin-bottomundmargin-leftkönnen ebenfalls verwendet werden. page-orientation-
Bestimmt die Ausrichtung der Seite. Dies beeinflusst nicht das Layout der Seite; die Drehung wird nach dem Layout im Ausgabemedium angewendet.
size-
Bestimmt die Zielgröße und Ausrichtung des
's enthaltenen Blocks. In der Regel, wo eine auf ein Blatt gedruckt wird, gibt sie auch die Größe des Zielfeldes an.
Die Spezifikation erwähnt die folgende CSS-Eigenschaften, die über die @page-At-Regel auf Seitenboxen anwendbar sind. Diese wurden jedoch noch nicht von einem Benutzeragenten unterstützt.
Verbleibende Seiteneigenschaften
| Funktion | CSS-Eigenschaften |
|---|---|
| bidi properties | direction |
| background properties | background-color |
| background-image | |
| background-repeat | |
| background-attachment | |
| background-position | |
| background | |
| border properties | 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 | |
| counter properties | counter-reset |
| counter-increment | |
| color | color |
| font properties | font-family |
| font-size | |
| font-style | |
| font-variant | |
| font-weight | |
| font | |
| height properties | height |
| min-height | |
| max-height | |
| line height | line-height |
| margin properties | margin-top |
| margin-right | |
| margin-bottom | |
| margin-left | |
| margin | |
| outline properties | outline-width |
| outline-style | |
| outline-color | |
| outline | |
| padding properties | padding-top |
| padding-right | |
| padding-bottom | |
| padding-left | |
| padding | |
| quotes | quotes |
| text properties | letter-spacing |
| text-align | |
| text-decoration | |
| text-indent | |
| text-transform | |
| white-space | |
| word-spacing | |
| visibility | visibility |
| width properties | width |
| min-width | |
| max-width |
Beschreibung
Die @page-Regel definiert Eigenschaften der Seitenbox. Die @page-At-Regel kann über die CSS-Objektmodell-Schnittstelle CSSPageRule angesprochen werden.
Hinweis:
Das W3C diskutiert, wie mit ansichtsbezogenen <length>-Einheiten, vh, vw, vmin und vmax, umzugehen ist. Verwenden Sie diese zwischenzeitlich nicht innerhalb einer @page-At-Regel.
Verwandte Eigenschaften
Die @page-At-Regel erlaubt es dem Benutzer, der Regel einen Namen zuzuweisen, der dann in einer Deklaration über die page-Eigenschaft aufgerufen wird.
page-
Ermöglicht es einem Selektor, eine benutzerdefinierte benannte Seite zu verwenden
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 ]
Wo der <page-body> Folgendes umfasst:
- Seiteneigenschaften
- Seitenrandeigenschaften
und <pseudo-page> diese Pseudoklassen darstellt:
Margin-At-Regeln
Die Margin-At-Regeln werden innerhalb der @page-At-Regel verwendet. Sie zielen auf einen anderen Abschnitt der gedruckten Seite ab und gestalten den Bereich der gedruckten Seite basierend auf den Eigenschaftswerten im Stilblock:
@page {
@top-left {
/* page-margin-properties */
}
}
@top-left zielt auf den oberen linken Bereich des Dokuments und wendet die basierend auf den festgelegten Seitenrandeigenschaften vorgenommenen Änderungen 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
Seitenrandeigenschaften
Die Seitenrandeigenschaften sind eine Gruppe von CSS-Eigenschaften, die in einer beliebigen Margin-At-Regel festgelegt werden können. Diese umfassen:
Seitenrandeigenschaften
| Funktion | CSS-Eigenschaften |
|---|---|
| bidi properties | direction |
| background properties | background-color |
| background-image | |
| background-repeat | |
| background-attachment | |
| background-position | |
| background | |
| border properties | 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 | |
| counter properties | counter-reset |
| counter-increment | |
| content | content |
| color | color |
| font properties | font-family |
| font-size | |
| font-style | |
| font-variant | |
| font-weight | |
| font | |
| height properties | height |
| min-height | |
| max-height | |
| line height | line-height |
| margin properties | margin-top |
| margin-right | |
| margin-bottom | |
| margin-left | |
| margin | |
| outline properties | outline-width |
| outline-style | |
| outline-color | |
| outline | |
| padding properties | padding-top |
| padding-right | |
| padding-bottom | |
| padding-left | |
| padding | |
| quotes | quotes |
| text properties | letter-spacing |
| text-align | |
| text-decoration | |
| text-indent | |
| text-transform | |
| white-space | |
| word-spacing | |
| vertical alignment | vertical-align |
| visibility | visibility |
| width properties | width |
| min-width | |
| max-width | |
| z-index | z-index |
Benannte Seiten
Benannte Seiten ermöglichen es, eine Seitengestaltung durchzuführen und Seitenumbrüche auf deklarative Weise beim Drucken hinzuzufügen.
Benannte Seiten können durch die page-Eigenschaft angewendet werden. Dies ermöglicht es dem Benutzer, verschiedene Seitenkonfigurationen für den Einsatz in Drucklayouts zu erstellen.
Ein Beispiel hierfür finden Sie in den page Beispielen.
Beispiele
>Verwendung der size-Eigenschaft zur Änderung der Seitenausrichtung
Dieses Beispiel zeigt, wie die <section>s in einzelne Seiten im landscape-Format aufgeteilt werden, wobei jede Seite beim Drucken einen 20% Rand hat.
Das Klicken auf die Drucktaste öffnet einen Druckdialog, in dem die HTML-Abschnitte in einzelne Seiten unterteilt 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;
}
}
Beispiele für @page-Pseudoklassen
Siehe die verschiedenen Pseudoklassen von @page für Beispiele.
Spezifikationen
| Specification |
|---|
| CSS Paged Media Module Level 3> # at-page-rule> |
| CSS Logical Properties and Values Level 1> # page> |
Browser-Kompatibilität
Loading…
Siehe auch
- Die
page-Eigenschaft - Der
@pagesizeDeskriptor - CSS-Seitenmedien Modul
- [META] CSS Paged Media Module Level 3 Bugzilla zur Verfolgung des Fortschritts zu diesem Thema (seitenbasierte Zähler usw.)