Safari TP 254:calc-size() 来了,size 简写也来了
Safari Technology Preview 254 于 10 月 8 日发布,CSS 侧补上 calc-size()、size 与单边圆角简写,渲染侧给 macOS 加了实时捏合缩放。
Safari Technology Preview 254 在 10 月 8 日发布,覆盖 WebKit 的 321068\@main…322634\@main 区间。这一版没有大新闻,但 CSS 侧补的几条,恰好都在「以前只能绕」的位置。
calc-size():让内在尺寸参与计算
以前 calc() 只能算长度,碰到 auto、fit-content、max-content 这类内在尺寸就只能干瞪眼 —— 要么包一层 wrapper 去量,要么用 JS 读回来再写死。
TP 254 加了 calc-size(),允许对内在尺寸做运算。写法大致是:
.panel {
height: calc-size(auto, size + 2rem);
}
它的价值不在「能算」,而在动画:内在尺寸本身不可插值,但 calc-size() 的表达式可以。以前「高度从 auto 过渡到固定值」要靠 grid-template-rows: 0fr → 1fr 这类技巧,现在有了一条语言层面的路。
两个简写:size 与单边圆角
size/min-size/max-size简写:一次设宽高,替代width+height两行border-*-radius单边简写:比如border-top-radius一次设上边两个角,替代border-top-left-radius+border-top-right-radius
这两条都是「少写一行」,但配合设计令牌系统时会明显减少重复 —— 站内样式里就有大量成对出现的圆角声明。
渲染:macOS 的实时捏合缩放
新增了 macOS 上的 live pinch-to-zoom:缩放过程中内容保持清晰(不是放大位图),且 fixed / sticky 元素会跟随缩放。这条对「用触控板看长文」的体验是实打实的提升。
修掉的几个 bug(都很典型)
- view timeline 动画:当 sticky 定位的内联祖先吸附到滚动容器后,动画会冻住
- opacity → 0 的加速动画(含滚动驱动动画)可能让元素保持完全可见,而不是透明
- 可访问性:用
pointer-events: none装饰过的按钮 / 链接 / 表单控件,VoiceOver 现在能按到;ARIAmenuitem系列不再一律读成「已选中」;iOS 上多段错误信息不再逆序重复朗读
一句判断
calc-size() 是这一版真正值得记的一条 —— 它把「内在尺寸」从只能读、不能算,变成可参与表达式。但要提醒:这是 Technology Preview,正式版 Safari 什么时候跟进还没定,现在写进生产代码只能当渐进增强,前面配一条普通声明兜底。
数据来源:WebKit 官方《Release Notes for Safari Technology Preview 254》(2026-10-08)。

评论
…