【検証中】【全ブラウザ対応】CSSコンテナクエリって何?

ちょっとむずい WordPress
【全ブラウザ対応】CSSコンテナクエリって何? - Qiita
概要2023/2/14から全ブラウザで対応になったコンテナクエリについて、興味を持ってもらうための記事です。コンテナクエリとはContainer queries are an alterna…

概要

2023/2/14から全ブラウザで対応になったコンテナクエリについて、
興味を持ってもらうための記事です。

コンテナクエリとは

Container queries are an alternative to media queries, which apply styles to elements based on viewport size or other device characteristics.
コンテナー クエリは、ビューポートサイズやその他のデバイス特性に基づいて要素にスタイルを適用するメディア クエリに代わるものです。

引用: CSS Container Queries – CSS: Cascading Style Sheets | MDNより

メディアクエリでは、「画面幅」を基準にスタイルの分岐をしていましたが
コンテナクエリでは、基準を「親要素のサイズ」に設定することができます。

概要.png

ブレイクポイントをこちらで決められるので、
レスポンシブのスタイリングがより柔軟になりますね:relaxed:

使い方

使い方は簡単です。

  1. 基準にしたい要素に、container-type:でプロパティを追加する
  2. @container@mediaと同じように使うだけ

使えるプロパティや詳細は、MDNなどでご確認ください。
TechFeed Experts Night#14 〜 絶対役立つ!最先端のCSS総ざらい での鹿野さんの資料が大変わかりやすかったです。

対応状況

2023/2/14時点でfirefoxでも対応されました。
バージョンの確認をしながら、使える際はどんどん使っていきましょう。

スクリーンショット 2023-03-05 11.15.49.png

引用: https://caniuse.com/mdn-css_at-rules_container

どんなところで使えそう?

例えば、メディアサイトによくありそうな、記事リストの実装に役立ちそうです。

  • サイドバー
  • 記事の中
  • サイト下部

など、さまざまな場所に配置したい・場合によってレイアウトを変えたいものに有効なのではないでしょうか。

記事リスト.png

demo

実際に、記事リストコンポーネントをコンテナクエリで実装してみました。
親要素のサイズによってレイアウトも変わってくれるので、ありがたいですね!

https://qiita.com/embed-contents/code-sandbox#qiita-embed-content__9d4b4ac9cd76c3cbe6fbdb39b0e6a914

まとめ

今までだと、別々のコンポーネントとして実装する必要があったものも、
コンテナクエリを使うことで、1つのコンポーネントとして管理することができるようになりそうです。

使いまわせるコンポーネントをどんどん作っていきましょう!

タイトルとURLをコピーしました