容器查询必须先声明container-type否则container规则无效仅inline-size广泛支持不可用于:root或body禁用em/rem等相对单位推荐px单位container-name实现命名隔离Chrome105等主流浏览器原生支持。container查询必须先声明container-type不加container-typecontainer规则完全无效——浏览器直接忽略连报错都不会有。这是最常被跳过的一步。必须在父容器上显式设置container-type: inline-size或size但后者需同时设container-name且兼容性更差inline-size是目前唯一广泛支持的取值覆盖宽度变化场景size要等宽高都变化才触发实用性低不能写在:root或body上——body默认不是格式化上下文多数情况下不生效推荐用div、section等块级容器如果父容器是display: flex或grid需确认它没被压缩比如子项设了flex-shrink: 0但父容器没设min-width否则实际可查询宽度可能远小于视觉宽度container里不能用em/rem/vw等相对单位容器查询的断点单位只能是px、%仅当父容器有明确宽度时、ch等基于容器自身尺寸的单位。用em或rem会退化为视口基准失去“响应父容器”的意义。错误写法container (min-width: 30em) —— 这里的em按根字体大小算和容器无关正确写法container (min-width: 480px) 或 container (min-width: 50%)前提是父容器本身宽度固定或受约束%容易踩坑如果父容器宽度由内容撑开如width: max-content50%可能等于0px建议优先用pxChrome 110 支持cap、ic等新单位但 Safari / Firefox 尚未跟进生产环境慎用container-name用于多容器嵌套隔离当一个页面里有多个可查询容器又想让某条container规则只作用于特定容器时container-name就是唯一可控手段。给父容器设container-name: sidebar然后写container sidebar (min-width: 320px) { ... }这条规则就只对这个命名容器生效不命名的容器默认属于匿名组所有匿名container规则都会匹配它们——容易误触发命名不区分大小写但建议全小写短横线避免和自定义属性冲突同一元素可以有多个名字container-name: header, nav对应多个container块兼容性现状和降级方案Container Queries 在 Chrome 105、Edge 105、Safari 16.4 原生支持Firefox 119 开始支持但需手动开启layout.css.container-queries.enabled标志不稳定。没有polyfill能真正模拟容器查询逻辑。 There’s An AI For That 全球领先的 AI 聚合器收集10,225个AI工具可用于超过2,548个任务。