CSSコンテナクエリ:レスポンシブデザインの革命
からのこの抜粋は、CSS の力を解き放ちます。 ブラウザのウィンドウサイズ全体に反応するビューポートメディアクエリとは異なり、コンテナクエリは、要素の利用可能なスペースに基づいたスタイリングを可能にし、真のコンポーネントレベルの応答性を有効にします。
従来のビューポートベースのレスポンシブデザインは、多くの場合、レイアウトグリッドと組み合わせた簡略化されたデバイスサイズ(モバイル、タブレット、デスクトップ)に関連するブレークポイントに依存しています。 このアプローチは、個々のコンポーネントの適応性と格闘しています。より大きな要素は個別に調整される可能性がありますが、通常はグローバルなブレークポイントに従います。
コンテナクエリは優れたソリューションを提供します。 次の画像は、ビューポートサイズとは完全に独立したコンテナクエリでスタイルのカードコンポーネントを示しています。 カードの外観は、利用可能なスペースに動的に適応します。
コンテナクエリの定義
コンテナクエリを利用するには、最初に
conterer-typeプロパティを使用してコンテナとして要素を宣言します。 inline-size
(水平ライティングモードの幅に相当)は、最も一般的で広くサポートされている値です。
。容器 {
コンテナタイプ:インラインサイズ。
}
.container {
container-type: inline-size;
}
at-ruleを使用してクエリを定義します。 次の例では、コンテナが幅40倍以上の場合、 h2 blueを設定します。
@container(min-width:40ch){
H2 {
色:青;
}
}
@container (min-width: 40ch) {
h2 {
color: blue;
}
}
@container(inline-size> 40ch){ H2 { 色:青; } }
@container (inline-size > 40ch) {
h2 {
color: blue;
}
}
、オプションには block-size および
asde-ratio が含まれます。詳細については、公式仕様を参照してください。
カードコンポーネントのアップグレード:実用的な例
コンテナクエリなしでは、カードのバリエーションには通常、ビューポートブレークポイントに結び付けられた修飾子クラスが含まれます。 以下の画像には、3つのカードサイズとそれに対応するクラスを紹介しています。
[Codepen Demo:Viewport Media Query Cards](Codepenへのリンク)
コンテナクエリを使用して、デフォルトのカードスタイル(サポートされていないブラウザ用)を維持し、コンテナ幅に基づいて追加のスタイルを定義します。
350px以上:水平レイアウト
600px以上:背景としての画像
この抜粋は、 CSSの力を解き放つことからのものです。応答性のあるユーザーインターフェイスの高度な手法
キーテイクアウト:
コンテナクエリは、コンポーネントレベルの応答性を提供します。 それらは
container-type
ビューポートメディアクエリよりも、レスポンシブデザインに対してより柔軟で粒状のアプローチを提供します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3