コンテナクエリで進化するレスポンシブデザイン

コンテナクエリで進化するレスポンシブデザイン

CSSの新機能「コンテナクエリ」とは?

これまで、CSSではレスポンシブデザインを実現するために「メディアクエリ」を使用していました。メディアクエリはビューポートの幅や高さに基づいてスタイルを適用する便利な機能ですが、コンポーネント単位での柔軟なスタイル変更が難しいという課題がありました。

「コンテナクエリ」は、その課題を解決するための新しいCSS機能です。これにより、要素の親コンテナのサイズや状態に基づいてスタイルを適用できるようになり、よりモジュール化されたデザインが可能になります。

コンテナクエリの基本的な書き方

コンテナクエリを使用するためには、まず対象の親要素に container プロパティを指定します。以下に基本的な使用例を示します。

HTML
<div class="container">
  <div class="child">Resizable Component</div>
</div>
CSS
/* 親要素にコンテナを定義 */
.container {
  container: size; /* サイズに基づいたコンテナクエリ */
  width: 100%;
  max-width: 800px;
  border: 1px solid #ccc;
}

/* 子要素にスタイルを適用 */
@container (min-width: 500px) {
  .child {
    background-color: lightblue;
    font-size: 1.5rem;
  }
}

@container (max-width: 499px) {
  .child {
    background-color: lightpink;
    font-size: 1rem;
  }
}

上記の例では、.container の幅が500px以上の場合は子要素 .child に青い背景色が適用され、499px以下ではピンク色の背景が適用されます。

コンテナクエリを使用するメリット

  1. コンポーネント単位での柔軟なスタイリング
    ビューポートのサイズではなく、コンテナのサイズに基づいてスタイルを変更できるため、再利用性の高いコンポーネント設計が可能です。
  2. コードの可読性向上
    特定のコンテナだけに適用されるスタイルを定義できるため、メディアクエリよりもロジックが直感的になります。
  3. より適応性のあるデザイン
    複雑なレスポンシブデザインの要件に対応しやすくなります。

使用時の注意点

  • ブラウザのサポート状況を確認すること。2024年12月時点では最新のブラウザで広くサポートされていますが、古いバージョンでは動作しない可能性があります。
  • 過剰に使いすぎるとパフォーマンスに影響が出る場合があるため、必要な箇所に絞って使用するのが良いでしょう。

まとめ

コンテナクエリは、CSSのレスポンシブデザインに革命をもたらす強力な機能です。コンポーネント駆動のデザインを実現しやすくなるため、特にモダンなウェブアプリケーションやデザインシステムにおいて有用です。今後のプロジェクトでぜひ活用してみてください。

制作のご相談・ご依頼はこちらから!

Author

WARACRO(ワラクロ)

2018年に起業し、Webデザイナー・WebディレクターとしてWordPress案件を中心にWeb制作のお仕事をしています。
このブログでは、Webサイト制作に関する情報をお届けしています。

HTML/CSS学習におすすめの書籍

Amazonの読み放題サービスKindle Unlimited無料体験キャンペーン実施中!

Amazon Kindle Unlimited 公式
Webデザイン学習におすすめの講座
To Top