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.

css
@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).

js
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.

js
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 GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
style
Type changed to CSSPageDescriptors
Experimental

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.