First a container must be registered, and it can be queried.
Use a selector to register a container.
.parent {
container-name: myname;
container-type: inline-size;
... other code
}
or, use the shorthand option
.parent {
container: myname / inline-size;
... other code
}
At the time of registration, two details - type and name - have to specified.
container-type: ...
sizeinline-sizenormalcontainer-name: <nameofcontainer>;
<nameofcontainer> identifies the container especially useful if you may a scenario of multiple containers.
The container query starts with the @container at-rule followed by the name of the container and the feature query.
div {
font-size: 2em;
}
@container myname (width: > 30ch)
{
div {
font-size: 3em;
}
}
container query to set font-size for the div inside the myname container to 3em if the feature width is greater than 30ch.
size-query…
widthheightinline-sizeblock-sizeaspect-ratioorientationstyle-query…
style(property: value)property to be checked for value.
for eg
@container contname style('background-color: blue') {
...
styles
...
}
The container query to apply styles if the background-color of the container contname is blue
and, or and not can be used to create compound queries
for eg
@container myname (width>30ch) and (height>100px) {
...
}
@container myname not (color: blue) {
...
}
Container queries can be nested within other container queries.
for eg
@container myname (width>30ch) {
...
@container myname not (background-color: blue) {
...
}
@container myname not (background-color: red) {
...
}
}