Chrome 115+、Firefox 111+ 和 Safari 17.4+ 是唯一完整支持 subgrid 的浏览器版本;更早版本直接跳过声明,getComputedStyle 返回空字符串或初始值,@supports 检测不可靠,必须用 JS 真实验证 gridTemplateColumns === 'subgrid'。

Chrome 115+、Firefox 111+ 和 Safari 17.4+ 是目前唯一完整支持 subgrid 的浏览器版本;更早版本(包括所有 Edge 旧版、iOS Safari 16 及之前、Chrome 114 及更早)压根不识别该值,CSS 引擎直接跳过声明,getComputedStyle(el).gridTemplateColumns 返回空字符串或初始值,不是“没对齐”,而是根本没解析。
Chrome 115+ 才真正启用 subgrid
Chrome 114 及更早版本对 @supports (grid-template-columns: subgrid) 的检测不可靠:语法未被解析,整个 @supports 块会被忽略,导致降级样式完全不生效。即使你在 DevTools 的 Layout 面板里看到网格线,也可能是父网格的渲染残留,而非 subgrid 实际生效。
-
grid-column: subgrid比grid-template-columns: subgrid更早获得稳定支持,且兼容性更好 - 必须配合显式定义的父网格轨道(如
grid-template-columns: 1fr 2fr 1fr),不能依赖auto-fit或auto-fill动态推导 - 开启 DevTools → Layout 面板 → 勾选 Grid overlay 后,只有孙子元素 outline 严格贴合父网格线,才算真启用
Safari 17.4+ 是 iOS 上唯一可行版本
iOS Safari 17.4 是首个支持 subgrid 的移动 Safari 版本;此前所有 iOS Safari(含 16.x 全系列)均不识别 subgrid 值,grid-template-rows: subgrid 这类声明会被静默丢弃,子元素退化为块级流,布局彻底错乱。
详细的 Three.js 3D 图形参考,涵盖场景设置、相机、几何体、材质、光照、动画、控制器、加载器、数学工具和调试。
- macOS Safari 17.4 同步支持,但需确认系统更新已安装(非仅浏览器更新)
-
@supports在 Safari 17.3 及更早版本中完全无效——它既不返回true也不执行块内规则,相当于 CSS 被注释掉 - 验证时务必在真机上测试,模拟器可能缓存旧渲染行为
Firefox 111+ 存在配置开关陷阱
Firefox 111+ 默认启用 subgrid,但若用户手动关闭了 layout.css.grid-2 这个底层实验性开关(常见于企业环境或隐私增强插件),即使版本达标,subgrid 也会失效,且 @supports 仍错误返回 true ——这是已知 bug。
立即学习“前端免费学习笔记(深入)”;
- 真实检测只能靠 JS:
getComputedStyle(el).gridTemplateColumns === 'subgrid',返回''或'none'即失败 - 不要把降级样式全塞进
@supports块里,基础布局必须在外层独立书写(IE/Safari 10.1 都能理解的写法) -
display: contents会切断 subgrid 链路:一旦父容器或中间 wrapper 使用它,孙子元素就找不到上层轨道来源
真正麻烦的不是“哪些支持”,而是“支持但不可信”——比如 Firefox 111–113 的 @supports 假阳性、Safari 17.4 前的静默跳过、Chrome 115 初始版本对 grid-row: subgrid 的部分解析缺失。生产环境必须用 JS 实时探测,不能只靠版本号或 @supports。

















