Thanks to visit codestin.com
Credit goes to developer.mozilla.org

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

css
/* <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-name property page.

<container-type>

The type of containment context. More details on the syntax are covered in the container-type property page.

Formal definition

Initial valueas each of the properties of the shorthand:
Applies toall elements
Inheritedno
Percentagesas each of the properties of the shorthand:
Computed valueas each of the properties of the shorthand:
Animation typeas 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:

html
<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:

css
.post {
  container-type: inline-size;
  container-name: sidebar;
}

The container shorthand is intended to make this simpler to define in a single declaration:

css
.post {
  container: sidebar / inline-size;
}

You can then target that container by name using the @container at-rule:

css
@container sidebar (width >= 400px) {
  /* <stylesheet> */
}

Specifications

Specification
CSS Conditional Rules Module Level 5
# container-shorthand

Browser compatibility

See also