CSSContainerRule: containerName-Eigenschaft

Baseline 2023
Newly available

Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Die schreibgeschützte containerName-Eigenschaft der CSSContainerRule-Schnittstelle repräsentiert den Containernamen der zugehörigen CSS @container-At-Regel.

Zum Beispiel ist der Wert von containerName für die folgende @container-Regel sidebar:

css
@container sidebar (width >= 700px) {
  .card {
    font-size: 2em;
  }
}

Wert

Ein String, der den container-name des mit dieser CSSContainerRule verbundenen @container enthält. Wenn der @container nicht benannt ist, gibt die Funktion den leeren String ("") zurück.

Beispiele

Das folgende Beispiel definiert eine benannte @container-Regel und zeigt die Eigenschaften der zugehörigen CSSContainerRule an. Das CSS ist dem im @container-Beispiel Erstellen benannter Container-Kontexte sehr ähnlich.

Zuerst definieren wir das HTML für eine card (<div>), die sich innerhalb eines post befindet.

html
<div class="post">
  <div class="card">
    <h2>Card title</h2>
    <p>Card content</p>
  </div>
</div>

Das CSS für das Containerelement spezifiziert den Typ des Containers und kann auch einen Namen festlegen. Die Karte hat eine Standard-Schriftgröße, die für den @container namens sidebar überschrieben wird, wenn die Breite größer als 700px ist.

html
<style id="example-styles">
  .post {
    container-type: inline-size;
    container-name: sidebar;
  }

  /* Default heading styles for the card title */
  .card h2 {
    font-size: 1em;
  }

  @container sidebar (width >= 700px) {
    .card {
      font-size: 2em;
    }
  }
</style>

Der folgende Code erhält das HTMLStyleElement, das mit dem Beispiel über seine id verknüpft ist, und verwendet dann dessen sheet-Eigenschaft, um das StyleSheet zu erhalten. Aus dem StyleSheet erhalten wir die Menge an cssRules, die dem Stylesheet hinzugefügt wurden. Da wir den @container als dritte Regel hinzugefügt haben, können wir über den dritten Eintrag (Index "2") in den cssRules auf die zugehörige CSSContainerRule zugreifen. Schließlich protokollieren wir den Containernamen und die Query-Eigenschaften (der Code, der das Protokollieren durchführt, wird nicht gezeigt).

js
const exampleStylesheet = document.getElementById("example-styles").sheet;
const exampleRules = exampleStylesheet.cssRules;
const containerRule = exampleRules[2]; // a CSSContainerRule representing the container rule.
log(`CSSContainerRule.containerName: "${containerRule.containerName}"`);

Das folgende Beispiel zeigt die Ausgabe. Der Protokollabschnitt listet den Containernamen als String auf. Der Titel in der Karten-Sektion sollte sich verdoppeln, wenn die Seitenbreite über 700px beträgt.

Spezifikationen

Specification
CSS Conditional Rules Module Level 5
# dom-csscontainerrule-containername

Browser-Kompatibilität

Siehe auch