CSSContainerRule: containerName-Eigenschaft

Baseline 2023

Newly available

Since February 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 des CSSContainerRule-Interfaces 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 (min-width: 700px) {
  .card {
    font-size: 2em;
  }
}

Wert

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

Beispiele

Das untenstehende Beispiel definiert eine benannte @container-Regel und zeigt die Eigenschaften der zugehörigen CSSContainerRule. Das CSS ähnelt stark dem Beispiel für @container in Erstellen benannter Container-Kontexte.

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

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 angeben. Die Karte hat eine Standard-Schriftgröße, die für das @container mit dem Namen sidebar überschrieben wird, wenn die Mindestbreite 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 (min-width: 700px) {
    .card {
      font-size: 2em;
    }
  }
</style>

Der untenstehende Code erhält das HTMLStyleElement, das mit dem Beispiel durch seine id verbunden ist, und verwendet dann seine sheet-Eigenschaft, um das StyleSheet zu erhalten. Vom StyleSheet bekommen wir die Menge der dem Sheet hinzugefügten cssRules. Da wir das @container als dritte Regel oben hinzugefügt haben, können wir auf die zugehörige CSSContainerRule zugreifen, indem wir den dritten Eintrag (Index "2") in den cssRules verwenden. Zuletzt loggen wir den Containernamen und die Abfrageeigenschaften (der Code, der das Logging 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 Beispielergebnis wird unten gezeigt. Der Log-Abschnitt listet den Containernamen-String auf. Der Titel im Kartenabschnitt sollte sich verdoppeln, wenn die Breite der Seite 700px überschreitet.

Spezifikationen

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

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch