container - CSS: Cascading Style Sheets | MDN (original) (raw)
Newly available
The container shorthand CSS property establishes the element as a query container and specifies the name and type of the containment context used in a container query.
Constituent properties
This property is a shorthand for the following CSS properties:
Syntax
/* <container-name> */
container: my-layout;
/* <container-name> / <container-type> */
container: my-layout / size;
/* Global Values */
container: inherit;
container: initial;
container: revert;
container: revert-layer;
container: unset;
Values
A case-sensitive name for the containment context. More details on the syntax are covered in the container-name property page.
The type of containment context. More details on the syntax are covered in the container-type property page.
Formal definition
Initial value | as each of the properties of the shorthand:container-name: nonecontainer-type: normal |
---|---|
Applies to | all elements |
Inherited | no |
Percentages | as each of the properties of the shorthand:container-name: nocontainer-type: no |
Computed value | as each of the properties of the shorthand:container-name: none or an ordered list of identifierscontainer-type: as specified |
Animation type | as each of the properties of the shorthand:container-name: Not animatablecontainer-type: a color |
Formal syntax
container =
<'container-name'> / <'container-type'> []?
=
normal |
[ size | inline-size [] || scroll-state []](/en-US/docs/Web/CSS/CSS%5FValues%5Fand%5FUnits/Value%5Fdefinition%5Fsyntax#brackets "Brackets: enclose several entities, combinators, and multipliers to transform them as a single component")
Examples
Establishing inline size containment
Given the following HTML example which is a card component with an image, a title, and some text:
<div class="post">
<div class="card">
<h2>Card title</h2>
<p>Card content</p>
</div>
</div>
The explicit way to create a container context is to declare a container-type
with an optional container-name
:
.post {
container-type: inline-size;
container-name: sidebar;
}
The container
shorthand is intended to make this simpler to define in a single declaration:
.post {
container: sidebar / inline-size;
}
You can then target that container by name using the @container at-rule:
@container sidebar (min-width: 400px) {
/* <stylesheet> */
}
Specifications
Specification |
---|
CSS Conditional Rules Module Level 5 # container-shorthand |