• 使用-apple-visual-effect属性 让你的网页秒实现Liquid Glass效果
  • 发布于 3天前
  • 179 热度
    0 评论
前言
昨天在网上看到个老外发现了苹果的一个秘密 CSS 属性 -apple-visual-effect。看完他的文章,发现这玩意儿能让网页也用上 iOS 26 的 Liquid Glass 效果,虽然我们用不上,但挺有意思。

怎么发现的?
这老外叫 Alastair,没事喜欢看 WebKit 源码。WWDC 结束后他发现 WebKit 有个提交,把"hosted blur"改成了"glass",然后就顺着这个线索找到了苹果的私有 CSS 属性:
.toolbar {
  -apple-visual-effect: -apple-system-glass-material;
}

能用吗?

并不能。我试了下,Safari 里完全无效,WebView 需要开启 useSystemAppearance 私有设置,用了可能就过不了审核。不过这老外还是试了下,效果确实不错。还能配合 @supports 做兼容:

.toolbar {
  background: rgba(204, 204, 204, 0.7);
}

@supports (-apple-visual-effect: -apple-system-glass-material) {
  .toolbar {
    background: transparent;//堆代码 duidaima.com
    -apple-visual-effect: -apple-system-glass-material;
  }
}

支持哪些效果?
除了 -apple-system-glass-material,还有:
-apple-system-blur-material-thin
-apple-system-blur-material-thick
其他系统材质
感觉苹果把整套设计系统都搬进去了。

一个有意思地观点
Alastair 提到个"假发理论":我们对 WebView 印象不好,可能是因为只注意到做得差的。苹果既然开发了这功能,肯定在某地方用了。但我们完全没发现哪些界面其实是 WebView。可能每天用 iOS 时,已经接触了很多 WebView,只是苹果做得太好,看不出来。

苹果的执着
这事让我想起苹果对细节的要求。别家搞 WebView 基本就是把网页塞进 App,苹果不行,要和原生界面一模一样。为了这个目标专门搞私有 CSS 属性,让 WebView 也能用系统材质。虽然开发者用不了,苹果自己可以偷偷用。

什么时候开放?
或许未来有一天会开放,或许永远不会。连 Service Worker 在 WKWebView 的支持都藏着,更别说这种涉及系统 UI 的功能了。不过也说不定,万一哪天 Cook 在发布会上宣布呢。

总结
虽然用不了,但苹果这思路值的学习:不管用什么技术,用户体验要一致。你觉的苹果在哪用了这技术?
用户评论