WEB制作(html・css(スタイルシート))に関する各種メモ書き

css によるコンテナクエリ

● css によるコンテナクエリ

画面幅ではなく、一番直近の親要素の幅によって、CSSのプロパティの値を変えたい時にコンテナクエリが使えます。

親要素の基準コンテナを設定する container-type

container-type: コンテナクエリを使うときに、対象の要素をコンテナとして定義するためのプロパティ。

.container {
  container-type: inline-size;
}

指定できる値

基準 用途
normal なし デフォルト
inline-size 横方向のサイズ 幅に応じてスタイルを変える
size 横・縦方向のサイズ 幅・高さに応じてスタイルを変える

例えば、親要素の幅が160px以下になったらボタンのpaddingを減らす場合:

.container {
  container-type: inline-size;
}

@container (max-width: 160px) {
  button {
    padding-inline: 8px;
  }
}

inline-size は通常の横書きでは、ほぼ width と考えてOK。

CSSのコンテナクエリでボタンのpaddingを変更する

親要素をコンテナとして定義し、幅に応じてボタンの padding を変更できます。

.container {
  container-type: inline-size;
}

button {
  padding: 12px 24px;
}

@container (max-width: 160px) {
  button {
    padding: 8px 12px;
  }
}

親要素の幅が 160px以下になると、ボタンの padding が小さくなります。

ポイントは、160pxボタン自身の幅ではなく、コンテナ(親要素)の幅を基準に判定されることです。

No.2771
08/25 16:47

edit