CSSPageRule: style-Eigenschaft
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
* Some parts of this feature may have varying levels of support.
Die schreibgeschützte style
-Eigenschaft der CSSPageRule
-Schnittstelle gibt ein CSSPageDescriptors
-Objekt zurück.
Dies stellt einen CSS-Deklarationsblock für eine CSS-@page
-At-Regel dar und bietet Stilinformationen sowie verschiedene stilbezogene Methoden und Eigenschaften für die Seite.
Wert
Ein CSSPageDescriptors
-Objekt mit Eigenschaften, die der zugehörigen @page
-At-Regel entsprechen.
Hinweis:
Frühere Versionen der Spezifikation definierten diese Eigenschaft als CSSStyleDeclaration
.
Überprüfen Sie die unten stehenden Kompatibilitätsdaten für Ihren Browser.
Beispiele
Eine @page-Regel inspizieren
Dieses Beispiel verwendet die Web-API, um den Inhalt einer @page
-Regel zu inspizieren.
CSS
Unten definieren wir Stile für die Seite mithilfe einer @page
-Regel.
Wir weisen unterschiedliche Werte für jede margin
-Eigenschaft mit der Kurzform margin
zu und geben auch die size
an.
Die Eigenschaft page-orientation
wird nicht gesetzt.
So können wir sehen, wie die Eigenschaften im Web-API-Objekt abgebildet werden.
@page {
margin: 1cm 2px 3px 4px;
/* page-orientation: upright; */
size: A4;
}
JavaScript
Der Code greift zuerst auf das Stylesheet im Dokument an Index 1
zu und ruft dann die cssRules
ab, die in diesem Stylesheet definiert sind.
Wir müssen dieses Stylesheet abrufen, weil das Beispiel in einem separaten Frame mit einem eigenen Stylesheet eingebettet ist (Index 0
ist das CSS für diese Seite).
const myRules = document.styleSheets[1].cssRules;
Wir durchlaufen dann die Regeln, die für das Live-Beispiel definiert sind, und filtern diejenigen, die vom Typ CSSPageRule
sind, da diese den @page
-Regeln entsprechen.
Für die passenden Objekte protokollieren wir anschließend das style
und alle seine Werte.
for (let i = 0; i < myRules.length; i++) {
if (myRules[i] instanceof CSSPageRule) {
log(`${myRules[i].style}`);
log(`margin: ${myRules[i].style.margin}`);
// Access properties using CamelCase properties
log(`marginTop: ${myRules[i].style.marginTop}`);
log(`marginRight: ${myRules[i].style.marginRight}`);
log(`marginBottom: ${myRules[i].style.marginBottom}`);
log(`marginLeft: ${myRules[i].style.marginLeft}`);
log(`pageOrientation: ${myRules[i].style.pageOrientation}`);
// Access properties using snake-case properties
log(`margin-top: ${myRules[i].style["margin-top"]}`);
log(`margin-right: ${myRules[i].style["margin-right"]}`);
log(`margin-left: ${myRules[i].style["margin-left"]}`);
log(`margin-bottom: ${myRules[i].style["margin-bottom"]}`);
log(`page-orientation: ${myRules[i].style["page-orientation"]}`);
log(`size: ${myRules[i].style.size}`);
log("\n");
}
}
Ergebnisse
Die Ergebnisse werden unten angezeigt.
Beachten Sie, dass das Objekt ein CSSPageDescriptors
sein sollte, um der aktuellen Spezifikation zu entsprechen, in einigen Browsern jedoch möglicherweise ein CSSStyleDeclaration
ist.
Beachten Sie außerdem, dass die entsprechenden Werte für Eigenschaften in CamelCase und SnakeCase einander sowie der @page
-Deklaration entsprechen und dass page-orientation
eine leere Zeichenkette ""
ist, da es in @page
nicht definiert wurde.
Spezifikationen
Specification |
---|
CSS Object Model (CSSOM) # dom-csspagerule-style |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
style | ||||||||||||
Type changed to CSSPageDescriptors |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
- No support
- No support
- Experimental. Expect behavior to change in the future.