码译 · VibeCode
一个卡片在宽屏放三列、窄屏放一列,但想按『卡片自身宽度』而不是屏幕宽度来变
容器查询
Container Query
反模式只用媒体查询按屏幕宽度改样式,组件放到不同容器里就错位
正解用 container-type 让组件按自身容器宽度响应,组件到处复用都正确
在线对比体验 · 同一个需求,大白话 vs 平台提示词,效果立分高下 · 右边可点击体验
大白话直接生成
同样的卡片塞进侧栏就挤爆
三列布局在窄容器溢出
平台提示词生成
按自身宽度自适应 ✦
窄容器自动变单列
点一下试试
差在哪?大白话没讲「只用媒体查询按屏幕宽度改样式,组件放到不同容器里就错位」,AI 只能自己猜;平台提示词写明「用 container-type 让组件按自身容器宽度响应,组件到处复用都正确」,还带要点与三端注意,一次到位不用返工。
代码示例
错误写法
@media(max-width:600px){ .card{...} } /* 只看屏幕 */
正确写法
.card{container-type:inline-size} @container(max-width:300px){...}
语义锚点 · 对齐 AI 语义库契约
<div data-vibe="container-query"> … 组件根元素 … </div><!-- AI 用语义名片 locate 此属性即可定位/修改 -->
在组件根元素挂 data-vibe="container-query",AI 用语义名片里的 locate([data-vibe='container-query'])即可定位、修改、组合该组件——与「AI 语义库」tab 的契约一一对应。在 AI 语义库看契约 →
不同平台注意
网页CSS container queries(新浏览器)
App按父宽传样式
小程序按容器宽度条件渲染
可直接复制的提示词(三端都给你,挑对应平台复制给 Cursor / 通义灵码 / Claude)
网页 Web
你是一位资深前端工程师。我想实现【容器查询】(专业术语:Container Query)。

【我想达到的效果】一个卡片在宽屏放三列、窄屏放一列,但想按『卡片自身宽度』而不是屏幕宽度来变。
【请避免的反模式】只用媒体查询按屏幕宽度改样式,组件放到不同容器里就错位。
【正确做法】用 container-type 让组件按自身容器宽度响应,组件到处复用都正确。

【平台】网页 Web(标准 HTML/CSS/JS,单文件零依赖,不引任何 CDN)。
【提示词要点】
- 组件级响应式优先用容器查询
- container-type:inline-size 才生效
- 老浏览器用媒体查询兜底
- 组件更易跨处复用

请输出完整可运行代码(关键处写中文注释),并附 50 字以内使用说明。
手机 App
你是一位资深前端工程师。我想实现【容器查询】(专业术语:Container Query)。

【我想达到的效果】一个卡片在宽屏放三列、窄屏放一列,但想按『卡片自身宽度』而不是屏幕宽度来变。
【请避免的反模式】只用媒体查询按屏幕宽度改样式,组件放到不同容器里就错位。
【正确做法】用 container-type 让组件按自身容器宽度响应,组件到处复用都正确。

【平台】手机 App(React Native / Flutter / 原生,给出对应组件与关键代码)。
【提示词要点】
- 组件级响应式优先用容器查询
- container-type:inline-size 才生效
- 老浏览器用媒体查询兜底
- 组件更易跨处复用

请输出完整可运行代码(关键处写中文注释),并附 50 字以内使用说明。
微信小程序
你是一位资深前端工程师。我想实现【容器查询】(专业术语:Container Query)。

【我想达到的效果】一个卡片在宽屏放三列、窄屏放一列,但想按『卡片自身宽度』而不是屏幕宽度来变。
【请避免的反模式】只用媒体查询按屏幕宽度改样式,组件放到不同容器里就错位。
【正确做法】用 container-type 让组件按自身容器宽度响应,组件到处复用都正确。

【平台】微信小程序(WXML/WXSS/JS,注意 rpx 单位与小程序专属约束)。
【提示词要点】
- 组件级响应式优先用容器查询
- container-type:inline-size 才生效
- 老浏览器用媒体查询兜底
- 组件更易跨处复用

请输出完整可运行代码(关键处写中文注释),并附 50 字以内使用说明。