広告スペース(バナー)
🎨HTML & CSS レッスン
HTMLの基礎7▾
CSSレイアウトの基本6▾
インタラクションとアクセシビリティ5▾
CSSの表現力を高める6▾
テーブルと詳細度・図形5▾
モダンCSSレイアウト6▾
画像とビジュアル表現の応用6▾
レッスン 43 / 50
コンテナクエリで部品ごとにレイアウトを変える
このレッスンでは、コンテナクエリを使った部品単位でのレイアウト切り替えを学び、再利用しやすいコンポーネント設計ができるようになることを目標にします。「CSS コンテナクエリ 使い方」で調べている方向けです。
@container(コンテナクエリ)を使うと、画面全体の幅ではなく「その部品(コンテナ)自身の幅」に応じてスタイルを変えられます。同じカード部品を、狭い場所でも広い場所でも見た目良く配置したいときに便利です。
サンプルコードでは、.wrapperにcontainer-type: inline-size;を指定してコンテナとして登録し、@container (min-width: 400px)の中でカードのレイアウトを縦並びから横並びに切り替えています。.wrapperのwidthの値を変えると、切り替わるタイミングが変化することも確認してみましょう。
初心者がよくつまずくのが、コンテナクエリを使うには、まず親要素にcontainer-typeを指定してコンテナとして登録する必要がある点です。この指定を忘れると、@containerのルールが正しく動作しません。
従来のメディアクエリは画面全体の幅しか見られませんでしたが、コンテナクエリは部品単位で判定できるため、同じ部品を色々な場所で再利用しやすくなります。比較的新しいCSSの機能として注目されています。
HTML & CSS
OUTPUT / 実行結果
💡 プレビューはこのページ内だけで動作し、外部には送信されません。
🎯
ここまでできればゴール達成!
画面幅ではなく、部品自体の幅に応じてレイアウトを変えられるようになります。
画面幅ではなく、部品自体の幅に応じてレイアウトを変えられるようになります。
広告スペース(バナー)
広告スペース(記事内)