container
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since February 2023.
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
<container-name>-
A case-sensitive name for the containment context. More details on the syntax are covered in the
container-nameproperty page. <container-type>-
The type of containment context. More details on the syntax are covered in the
container-typeproperty page.
Formal definition
| Initial value | as each of the properties of the shorthand:
|
|---|---|
| Applies to | all elements |
| Inherited | no |
| Percentages | as each of the properties of the shorthand:
|
| Computed value | as each of the properties of the shorthand:
|
| Animation type | as each of the properties of the shorthand:
|
Formal syntax
container =
<'container-name'> [ / <'container-type'> ]?
<container-name> =
none |
<custom-ident>+
<container-type> =
normal |
[ [ size | inline-size ] || scroll-state ]
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 (width >= 400px) {
/* <stylesheet> */
}
Specifications
| Specification |
|---|
| CSS Conditional Rules Module Level 5> # container-shorthand> |
Browser compatibility
Loading…
See also
- CSS container queries
- Using container size and style queries
@containerat-rule- CSS
containproperty - CSS
container-typeproperty - CSS
container-nameproperty - CSS
content-visibilityproperty