CSS如何根据父级容器宽度调整子项_利用容器查询container选择器css

容器查询必须先声明container-type,否则@container规则无效;仅inline-size广泛支持;不可用于:root或body;禁用em/rem等相对单位;推荐px单位;container-name实现命名隔离;Chrome105+等主流浏览器原生支持。container查询必须先声明container-type不加container-type,@container规则完全无效------浏览器直接忽略,连报错都不会有。这是最常被跳过的一步。必须在父容器上显式设置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-content),50%可能等于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个任务。

相关推荐
用户83562907805113 小时前
Python 操作 PDF 附件:添加、查看与管理指南
后端·python
Databend14 小时前
在 AWS 中国峰会逛了一天,我在 Databend 展台看到了 Agent 数据基础设施的新思路
数据库·人工智能·agent
宇宙之一粟21 小时前
乐企版式文件生成平台
java·后端·python
学测绘的小杨2 天前
CompassFusion:一个从 GNSS 到 GNSS/INS 组合导航的独立工程包
python
ClouGence2 天前
Oracle 数据同步为什么会出现数据不一致?长事务是常被忽略的原因
数据库·后端·oracle
zzzzzz3102 天前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
雪隐2 天前
个人电脑玩AI-06让5060 Ti给你打工——不光能画画,Qwen3-TTS还能学人说话,连我老板都信了!
人工智能·后端·python
飞将2 天前
从零实现数据库(2)——HashIndex + IndexManager
数据库
兵慌码乱2 天前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构
hboot2 天前
AI工程师第三课 - 机器学习基础
python·scikit-learn·kaggle