contain-intrinsic-block-size
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 contain-intrinsic-block-size CSS logische Eigenschaft definiert die Blockgröße eines Elements, die ein Browser für das Layout verwenden kann, wenn das Element einer Größenbeschränkung unterliegt.
Die Blockgröße ist die Größe eines Elements in der Dimension, die senkrecht zum Textfluss innerhalb einer Zeile steht. In einem horizontalen Schreibmodus wie Standardenglisch ist die Blockgröße die vertikale Dimension (Höhe); in einem vertikalen Schreibmodus ist die Blockgröße die horizontale Dimension.
Syntax
/* Keyword values */
contain-intrinsic-block-size: none;
/* <length> values */
contain-intrinsic-block-size: 1000px;
contain-intrinsic-block-size: 10rem;
/* auto <length> */
contain-intrinsic-block-size: auto 300px;
/* Global values */
contain-intrinsic-block-size: inherit;
contain-intrinsic-block-size: initial;
contain-intrinsic-block-size: revert;
contain-intrinsic-block-size: revert-layer;
contain-intrinsic-block-size: unset;
Werte
Die folgenden Werte können für die intrinsische Blockgröße eines Elements angegeben werden:
none-
Das Element hat keine intrinsische Blockgröße.
<length>-
Das Element hat die angegebene Blockgröße, ausgedrückt unter Verwendung des (
<length>) Datentyps. auto <length>-
Wenn das Element in einer Größenbeschränkung ist und seine Inhalte übersprungen werden (zum Beispiel, wenn es außerhalb des Bildschirms ist und
content-visibility: autogesetzt ist), wird die Blockgröße aus der tatsächlichen Größe des Elements gespeichert, als es zuletzt in der Lage war, seine Kindelemente darzustellen. Wenn das Element seine Kindelemente nie dargestellt hat und daher keinen gespeicherten Wert für die normalerweise dargestellte Elementgröße hat, oder wenn es seine Inhalte nicht überspringt, ist die Blockgröße der angegebene<length>.
Beschreibung
Die Eigenschaft wird häufig zusammen mit Elementen angewendet, die eine Größenbeschränkung auslösen können, wie z.B. contain: size und content-visibility.
Größenbeschränkung ermöglicht es einem Benutzeragenten, ein Element so zu layouten, als hätte es eine feste Größe.
Dies verhindert unnötige Neuanordnungen, indem das erneute Rendern von Kindelementen vermieden wird, um die tatsächliche Größe zu bestimmen (und verbessert damit die Benutzererfahrung).
Standardmäßig behandelt die Größenbeschränkung Elemente, als hätten sie keine Inhalte und könnte das Layout auf dieselbe Weise zusammenbrechen lassen, als hätten die Inhalte keine Breite oder Höhe.
Die contain-intrinsic-block-size-Eigenschaft erlaubt es Autoren, einen geeigneten Wert anzugeben, der als Blockgröße für das Layout verwendet werden soll.
Der Wert auto <length> ermöglicht es, die Blockgröße eines Elements zu speichern, wenn das Element jemals "normal dargestellt" wird (mit seinen Kindelementen) und dann anstelle des angegebenen Wertes verwendet wird, wenn das Element keine Inhalte hat.
Dies ermöglicht es Außenelements mit content-visibility: auto, von Größenbeschränkungen zu profitieren, ohne dass Entwickler genau sein müssen bei ihren Schätzungen der Elementgröße.
Der gespeicherte Wert wird nicht verwendet, wenn die Kindelemente gerendert werden; wenn die Größenbeschränkung aktiviert ist, wird der <length>-Wert verwendet.
Formale Definition
| Anfangswert | none |
|---|---|
| Anwendbar auf | elements for which size containment can apply |
| Vererbt | Nein |
| Berechneter Wert | as specified, with <length>s values computed |
| Animationstyp | by computed value type |
Formale Syntax
contain-intrinsic-block-size =
[ auto | from-element ]? [ none | <length [0,∞]> ]
Beispiele
>Festlegen der intrinsischen Blockgröße
Das unten stehende HTML definiert ein Element "contained_element", das einer Größenbeschränkung unterliegt und ein Kindelement enthält.
<div id="contained_element">
<div class="child_element"></div>
</div>
Das unten stehende CSS setzt die content-visibility von contained_element auf auto, sodass, wenn das Element verborgen ist, es einer Größenbeschränkung unterliegt.
Die intrinsische Blockgröße und Inline-Größe, die verwendet werden, wenn es Größenbeschränkungen unterliegt, werden gleichzeitig mithilfe von contain-intrinsic-block-size und contain-intrinsic-inline-size festgelegt.
#contained_element {
border: 2px solid green;
inline-size: 151px;
content-visibility: auto;
contain-intrinsic-inline-size: 152px;
contain-intrinsic-block-size: 52px;
}
.child_element {
border: 1px solid red;
background: blue;
block-size: 50px;
inline-size: 150px;
}
Spezifikationen
| Specification |
|---|
| CSS Box Sizing Module Level 4> # propdef-contain-intrinsic-block-size> |