You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

组件宽度为600px时的条件样式设置问题(非屏幕宽度判断)

解决方案:使用CSS容器查询(Container Queries)

原来的@media是基于视口(屏幕)宽度的媒体查询,自然没法满足「组件自身宽度变化时切换样式」的需求。你可以用CSS容器查询来实现,不用新增组件,直接修改现有styled代码就行:

const wrapper = styled.div`
  display: flex;
  flex-direction: column;
  /* 声明当前元素为容器查询的上下文,基于内联尺寸(即宽度) */
  container-type: inline-size;

  /* 当容器自身宽度 ≤600px 时,切换flex方向 */
  @container (max-width: 600px) {
    flex-direction: row-reverse;
  }
`

说明:

  • container-type: inline-size:告诉浏览器这个元素是一个容器查询的基准,后续的@container规则会基于这个元素的自身宽度来判断条件是否满足。
  • @container (max-width: 600px):替代原来的@media,这里的宽度判断是针对当前wrapper组件自身的,而非屏幕宽度。

目前主流浏览器(Chrome、Firefox、Edge)都已经支持容器查询,无需额外依赖。

内容的提问来源于stack exchange,提问作者Zein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 19:12:05