Servo 0.6 把 CSS Grid 默认打开了,一堆网站终于对版

Servo 0.6.0 把 8 月的 417 个提交打包发布,CSS Grid 从实验开关变成默认能力。这篇挑出发布说明里真正影响页面观感与写法的几条。

10 月 9 日,Servo 团队发了月度总结:0.6.0 收录了 8 月落地的 417 个提交。其中最重的一条是 —— CSS Grid 默认开启了。

Grid 默认开启意味着什么

过去在 Servo 里跑带 Grid 布局的站点,是「布局直接塌成单列」的观感。这次 @nicoburns 的 PR(#45621)把它从开关后面挪到默认路径后,团队贴了两组前后对比:rustweek.org 这种典型 Grid 首页,以及 labs.jensimmons.com 这种「看起来不像用了 Grid、其实全靠 Grid 撑」的演示页。

对渲染引擎来说,Grid 是块布局、浮动、绝对定位之后的第四套布局算法,牵扯到轨道尺寸计算、min-content / max-content 的双向约束求解,以及和 writing-mode 的交互。它默认打开,通常意味着引擎的布局框架已经能承载「约束求解」这类结构,而不是只会从上往下摊。

顺带补齐的 Web 平台特性

发布说明里列了一串新能力,挑几个前端会直接用到的:

  • touch-action:告诉浏览器某个区域的手势归谁处理
  • animation-composition:多条动画作用于同一属性时的合成策略
  • color-scheme,以及 <meta name="color-scheme">:让页面声明自己支持明暗
  • text-transform 的 full-width / math-auto / full-size-kana 取值

DOM 侧也补了一批「以前只能靠特性检测绕开」的接口:DedicatedWorkerGlobalScope 上的 requestAnimationFrame()、Location.ancestorOrigins、<link rel=preload as=image> 的 imagesrcset / imagesizes、CSSFontFaceRule.style、Request.isReloadNavigation / isHistoryNavigation、focusin / focusout 事件、new TextEvent(),以及 BaseAudioContext.createPeriodicWave。

那些不好看但很重要的部分

发布说明里有一句很实在的话:这次对导航、文档加载和会话历史做了大幅改进,而「加载 about:blank 到底有多复杂,谁写谁知道」。结果是打开新窗口、嵌 iframe 的页面明显更可靠了 —— 这类改动不会出现在 demo 里,但它是「能不能当日常浏览器用」的分水岭。

安全侧升级到 SpiderMonkey v153,并修了一个全屏相关的行为:从处于全屏状态的文档导航离开时会退出全屏。兼容性方面修了触摸平移的锁轴(手势按主方向锁定),以及 gumroad.com.au 的崩溃。可访问性仍在推进,目前要加 --pref accessibility_enabled 才能开,已经能上报内容树里元素的位置与尺寸。

一句判断

Grid 默认开启是 Servo 的成人礼,但别把它读成「可以换掉 Chrome 了」:真正决定可用性的是 WPT 通过率和真实站点的长尾兼容,这两项 Servo 还在爬坡。值得关注的是趋势 —— 一个用 Rust 写的独立引擎,正在把布局引擎最硬的那块补齐。

数据来源:Servo 官方博客《August in Servo: CSS Grid, text selection, and more!》(2026-10-09)。

← 返回文章列表

评论

…