CSSContainerRule: containerQuery-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 containerQuery
-Eigenschaft des CSSContainerRule
-Interfaces gibt einen String zurück, der die Containerbedingungen darstellt, die ausgewertet werden, wenn der Container seine Größe ändert, um zu bestimmen, ob die Stile im zugehörigen @container
angewendet werden.
Zum Beispiel ist der Wert von containerQuery
für das untenstehende @container
(min-width: 700px)
:
@container sidebar (min-width: 700px) {
.card {
font-size: 2em;
}
}
Wert
Ein String, der die Container-Abfrage enthält.
Beachten Sie, dass der Wert möglicherweise nicht identisch mit dem ursprünglichen String ist, da Normalisierungen wie das Entfernen von Leerzeichen auftreten können.
Beispiele
Das Beispiel unten definiert eine unbenannte @container
-Regel und zeigt die Eigenschaften der zugehörigen CSSContainerRule
.
Das CSS ist dasselbe wie im @container
Beispiel Stile basierend auf der Größe eines Containers festlegen.
Zuerst definieren wir das HTML für eine card
(<div>
), die in einem post
enthalten ist.
<div class="post">
<div class="card">
<h2>Card title</h2>
<p>Card content</p>
</div>
</div>
Das CSS für das Containerelement gibt den Typ des Containers an.
Das @container
wendet dann eine neue Breite, Schriftgröße und Hintergrundfarbe auf das enthaltene Element "card" an, wenn die Breite weniger als 650px beträgt.
<style id="example-styles">
/* A container context based on inline size */
.post {
container-type: inline-size;
}
/* Apply styles if the container is narrower than 650px */
@container (width < 650px) {
.card {
width: 50%;
background-color: gray;
font-size: 1em;
}
}
</style>
Der untenstehende Code ruft das HTMLStyleElement
ab, das mit dem Beispiel über seine ID verknüpft ist, und verwendet dann seine sheet
-Eigenschaft, um das StyleSheet
zu erhalten.
Aus dem StyleSheet
bekommen wir die Menge der cssRules
, die zum Stylesheet hinzugefügt wurden.
Da wir das @container
als zweite Regel oben hinzugefügt haben, können wir die zugehörige CSSContainerRule
über den zweiten Eintrag (mit Index "1") in den cssRules
zugreifen.
Zuletzt loggen wir den Namen des Containers und die Abfrageeigenschaften.
const exampleStylesheet = document.getElementById("example-styles").sheet;
const exampleRules = exampleStylesheet.cssRules;
const containerRule = exampleRules[1]; // a CSSContainerRule representing the container rule.
log(`CSSContainerRule.containerQuery: "${containerRule.containerQuery}"`);
Das Beispielergebnis wird unten gezeigt. Der Protokollbereich listet den Abfrage-String auf. Die Karte sollte den Hintergrund ändern, während die Breite der Seite durch 650px übergeht.
Spezifikationen
Specification |
---|
CSS Conditional Rules Module Level 5 # dom-csscontainerrule-containerquery |
Browser-Kompatibilität
BCD tables only load in the browser