82
83

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Last updated at Posted at 2023-03-06

概要

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

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

まとめ

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

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

82
83
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
82
83

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?