container-type
is a property that designates an element as a container so that its size can be used to change the design of its contents.
container-type
は、「この要素をコンテナクエリ(中身ではなく自分のサイズでデザインを変える仕組み)の基準にするかどうか」を決めるCSSプロパティです。
普段、画面の大きさに合わせてデザインを変えるには @media
を使いますよね。でも「画面」じゃなくて、「特定の要素のサイズ」に合わせて中の見た目を変えたくなることがあります。
たとえば:
このとき、対象の要素に container-type
を指定すると、その要素の幅や高さを基準にして、中身のスタイルを変えることができるのです。
CSS
.sidebar {
container-type: inline-size;
}
これで、.sidebar
要素の「横幅」が変化したときに、それに応じたスタイルの変更が可能になります。
none
(デフォルト)inline-size
size
このプロパティは @container
という新しいルールと一緒に使うことが前提です。
CSS
@container (min-width: 400px) {
.content {
font-size: 1.5rem;
}
}
上記のように書くことで、「親の幅が400px以上のときだけ、中の.content
の文字を大きくする」などが可能になります。
container-type
は、要素自身を「サイズを基準にスタイル変更できる箱」にするプロパティ。@container
ルールと組み合わせて使うのがポイント。