CSSコンテナクエリがついに実用段階に。レスポンシブの概念が変わる新しいウェブデザイン

つくば市のホームページ制作会社

従来のレスポンシブデザインといえばメディアクエリを使ったビューポート(画面幅)ベースの実装が主流でしたが、2026年現在、CSSコンテナクエリがブラウザサポート95%を超えて実用段階に入り、コンポーネントレベルでのレスポンシブデザインという新しい概念が現場に浸透しています。これまでのような「画面幅が何px以下なら」ではなく、「コンポーネントを囲む親要素の幅が何px以下なら」という条件で、より柔軟で再利用しやすいレスポンシブ要素を作れるようになりました。

コンテナクエリが解決する根本的な問題

メディアクエリの最大の制約は、コンポーネントがどんな文脈で使われるかを知らないことでした。コンポーネントは親コンテナがどのくらいのスペースを持っているかしか知らず、ビューポートのサイズは関係ありません。コンテナクエリは、コンテナのサイズに基づいてスタイルを定義することで、コンポーネントを真に移植可能にします。

たとえば、カードコンポーネントをメインコンテンツエリアで使う場合とサイドバーで使う場合、従来は異なるCSSクラスを作るか、JavaScriptで制御する必要がありました。2026年では、同じCSSクラスのカードコンポーネントが、フルワイドヒーローレイアウトでもサイドバーの小さなサムネイルでも自動的に適応します。

ブラウザサポート状況と実装の現状

サイズコンテナクエリは、Chrome 105+、Firefox 110+、Safari 16+、Edge 105+でサポートされ、2026年時点で95%以上のグローバルカバレッジを実現しています。一方で、スタイルクエリ(@container style())は、Chrome 111+とEdge 111+のみで、FirefoxとSafariはまだ開発中です。

カスタムプロパティを条件とするコンテナスタイルクエリについては、Firefox側の対応次第で、2026年中には実用的になる見込みが高いとされています。実用性を重視するなら、当面はサイズクエリを中心に実装を進めるのが賢明でしょう。

現場で使えるコンテナクエリの基本実装

コンテナクエリの基本構文は、まず親要素にcontainment contextを設定することから始まります:

`.card-container { container: card / inline-size; }` のようにコンテナタイプを `inline-size` に設定することで、親の横方向(英語のような左から右への言語では幅)をクエリできます。続いて子要素に対して `@container (max-width: 400px) { .card-child { grid-template-columns: 1fr; } }` のように条件付きスタイルを適用します。

2026年時点で、:has()疑似クラスも全主要ブラウザで100%サポートされ、プロダクション環境で安全に使える標準ツールとなりました。これにより、コンテナクエリと組み合わせて、より複雑な条件分岐をCSSだけで実現できます。

メディアクエリからの移行戦略

コンテナクエリは既存のメディアクエリを完全に置き換えるものではありません。ページレベルのレイアウト決定(グリッドカラム、サイドバー表示、ナビゲーションスタイル)にはメディアクエリを使い、コンポーネントレベルのレイアウト決定(カードレイアウト、ウィジェット密度、テキスト折り返し)にはコンテナクエリを使うという使い分けが重要です。

移行は段階的に進めます。複数のレイアウトコンテキストで使われるコンポーネント(カード、ウィジェット、ナビゲーション)を特定し、それらの親ラッパーに `container-type: inline-size` を追加します。各コンポーネントの @media ルールを @container ルールに変換し、ブレイクポイント値を調整します(コンテナ幅はビューポート幅より小さくなるため)。

古いブラウザへの配慮として、@supports (container-type: inline-size) を使ってメディアクエリフォールバックを提供し、@supportsでプログレッシブエンハンスメントを行うことで、古いブラウザでもメディアクエリに適切にフォールバックします。

中小企業のウェブ制作現場では、まず最もよく再利用されるコンポーネントから移行を始め、固定幅コンテキストでのみ使用されるものは後回しにするという現実的なアプローチが効果的です。2026年のモダンCSSは、クライアントサイドJavaScriptなしで、真にモジュラーで弾力性があり、高パフォーマンスなUIを構築できる段階に達しています。

1-2 基本的なホームページ制作:HTML/CSSの基礎

1-2 基本的なホームページ制作:HTML/CSSの基礎

1-2 HTML/CSSの基礎

はじめに
前章では、ホームページの基本構造とその主要な構成要素について学びました。この章では、HTMLとCSSの基本に焦点を当て、ウェブページ制作の基礎をさらに深めていきます。HTMLでコンテンツの構造を定義し、CSSでその見た目を装飾することにより、効果的なウェブページを制作するための基礎技術を身につけましょう。

1. HTMLの深掘り

HTMLは、ウェブページの基礎を築くための言語です。コンテンツを構造化するために使用され、テキスト、画像、リンクなどの基本的なウェブコンテンツをブラウザに表示させます。

HTMLタグの役割

HTMLでは、様々なタグがコンテンツの意味を定義します。例えば、<p>は段落を、<h1>から<h6>は見出しを、<a>はリンクを表します。これらのタグを使用して文書の構造を明確にし、コンテンツの意味をブラウザに伝えることができます。

セマンティックHTML

セマンティックHTMLは、コンテンツの意味をより正確に表現するために特定のタグを使用することを指します。例えば、<article><section><nav><aside>などのタグは、ウェブページ内の特定のコンテンツの役割を明確にします。これにより、検索エンジンの最適化(SEO)やアクセシビリティの向上に役立ちます。

2. CSSの探求

CSSは、ウェブページのスタイルとレイアウトを定義するために使用されます。HTML構造に美しさと視覚的魅力を加えることで、ユーザー体験を向上させることができます。
スタイリングの基礎
CSSでは、セレクタを使用して特定のHTML要素を指定し、それらにスタイルを適用します。色、フォント、マージン、パディング、ボーダーなど、多様なプロパティを通じて、ページの視覚的要素を細かく調整できます。
レイアウト技術
近年のCSSは、フレキシブルボックス(Flexbox)やグリッド(Grid)といった強力なレイアウト技術を提供しています。これらの技術を使用することで、レスポンシブデザインを含む複雑なレイアウトも容易に実現できます。

3. 実践的な例

HTMLとCSSを組み合わせることで、様々なデザインと機能を持つウェブページを制作できます。例えば、以下は簡単なHTMLとCSSを使用したウェブページの例です。

<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: Arial, sans-serif; }
h1 { color: #333; }
p { color: #666; }
</style>
<title>HTML/CSSの基礎</title>
</head>
<body>

<h1>ウェブページのタイトル</h1>
<p>これは段落です。HTMLとCSSを使ってウェブページをデザインしています。</p>

</body>
</html>

4. まとめ

HTMLとCSSは、ウェブページ制作の基礎を形成します。HTMLでコンテンツの構造を定義し、CSSでそれを美しく装飾することで、ユーザーにとって魅力的なウェブページを制作することができます。この章で紹介した基本的な概念と技術を理解し、応用することで、より高度なウェブデザインに挑戦する準備が整います。