在
网站建设过程中,我们知道尽管浏览器支持广泛,容器查询仍然出人意料地少用且经常被误解。让我们看看它们与媒体查询的区别,何时对每个查询进行访问,以及容器查询如何帮助可复用组件自然响应它们出现的上下文。

说实话,我错过了CSS Container Queries首次发货时的新闻。当我终于听说时,我的第一反应是,“既然媒体查询已经存在,我为什么还需要这个?”让我困惑的是,容器查询并不是新功能,目前它大约有94%的浏览器支持率。然而,实际上很少有人在使用它。根据CSS现状调查,86%的开发者知道容器查询,但只有41.4%实际使用它们。调查可能存在偏见,无法完全代表我们整个领域,但这项调查无疑是我们目前最好的指标。
Kevin Powell 也在 SmashingConf 阿姆斯特丹 2026 年谈到了这一点:Container Queries 的采用率非常糟糕。这让我觉得很奇怪,因为多年来,组件能够适应外部容器的大小一直是许多 CSS 愿望清单的首要任务。我对有多少人使用容器查询并不特别感兴趣,而是他们如何使用它们。我无法解释所有人,但根据我所见——包括我自己早期的尝试——我们很多人都用错了它们。归根结底,错误使用归结为我了解它们时的印象:乍一看它们看起来完全像媒体查询。而且因为它们看起来很像,很容易让人以为它们有类似的用途和工作原理。
视口是一个代理。一直都是。媒体查询让我们产生了仅仅屏幕宽度就能决定响应式应用如何适应环境的错觉。我和大多数开发者一样,在问浏览器:现在屏幕有多宽?媒体查询已经很好地回答了这个问题,但当这个组件被放置在桌面屏幕上宽大的网格单元格中时会发生什么?媒体的问题并不在意;它完成了它的任务。视口仍然是 ,所以 fires 和匹配查询样式仍然被应用,尽管卡片只有有限的空间可用。最终,卡牌里的所有东西都会变形、溢出或抽筋。人们常常把响应式设计看作是更新完整页面布局的系统,比如大屏幕上的两栏变成小屏幕上的单栏。
容器查询比这更聪明。它们使响应式布局更依赖组件内部发生的事情,而不是依赖外部上下文,因为外部上下文对组件内容没有洞察。更像是:“现在这个特定位置有多少空间给我?”这改变了一切。卡片不受视口影响;它唯一关心的是组件的父包装器是否至少有内联空间(即从左到右写入模式中水平排列)。如果满足该条件,分量会水平;如果没有,它会回到默认显示。