在 CSS 中尝试使用 Random()
Experimenting with Random() in CSS

原始链接: https://polypane.app/blog/experimenting-with-random-in-css/

CSS 正在引入 `random()` 函数,使开发者能够直接在样式表中生成动态且富有创意的设计。目前该功能仍处于实验阶段,可在 Polypane (29+)、Chromium (148+) 和 Safari (26.2+) 中使用,但支持情况尚不稳定。 该函数可实现多种视觉效果,包括: * **散景与粒子效果:** 通过随机的位置、大小和不透明度,创建失焦的光斑或飘落的花瓣。 * **交互式堆叠:** 在 `transform` 属性中使用 `random()`,创建“凌乱”的拍立得照片堆叠效果,并可通过 CSS 复选框将其拨开。 * **加权逻辑:** 通过结合 `random()` 与 `@property` 和 `if()` 函数,开发者可以创建“加权”选择(例如控制视觉诗歌的布局概率),从而有效模拟 `random-item()` 的功能。 尽管该功能的实现仍在演进中(例如利用 `element-scoped` 或 `per-element` 来保持跨属性的一致性),但它为生成式 CSS 提供了强大的新可能。由于浏览器支持尚在完善中,这些功能目前最适合用于创意实验,而非生产环境。

这篇 Hacker News 讨论聚焦于近期的一篇文章《在 CSS 中试验 random() 函数》。尽管该文章介绍了 `random()` 函数,但评论者指出了几个技术和可访问性方面的问题。 讨论的焦点主要在于浏览器支持:许多用户反映演示内容无法显示,因为该功能目前仍处于实验性标志之后,在 Chrome 等主流浏览器中尚未生效。虽然一些用户提到文章顶部的视频展示了该功能,但其他人对缺乏截图以及难以查看效果表示不满。 此外也提出了技术批评。一位评论者指出,文章中的焦外成像(bokeh)效果不准确,未能真实模拟基于光圈的模糊效果。此外,一些资深开发者回顾了在原生 CSS 随机化功能提出之前,曾使用过的各种“黑客手段”,例如操作 DOM 来强制实现伪随机。总的来说,该讨论串既反映了人们对这一功能潜力的期待,也表达了对其当前实验阶段和文档情况的怀疑。
相关文章

原文

CSS is getting a random() function that lets you set properties with a random value, letting you make interesting and creative new designs. It's available in Polypane 29+ for testing, as well as in Chromium 148+ with experimental features enabled.

Safari 26.2+ also support random(), but doesn't fully support all the demos I show in this article. Firefox currently has no support for random().

Use Polypane 29+, Safari 26.2 or Chromium 148+ with experimental features enabled to try out the demos in this article. If you want to see the demos in action, you can get Polypane and try it for free.

I made some demos

I spend a few weeks coming up with different examples of how to use random() to create interesting designs, patterns and backgrounds.

联系我们 contact @ memedata.com