使用 CSS 创建分数 SVG 星星

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 $200 免费信用额度!

一些 ⭐️⭐️⭐️⭐️⭐️ 星级评分系统并不总是完全平均的星星。 假设您想支持对某事进行 2.25 星的评分。 为此,您可以部分“填充”星星的形状。 我喜欢 这个想法,由 Samuel Kraft 提出。 棘手的部分是

最后一步是使覆盖层 div 仅影响下面的星星 SVG,而不是背景。 我们可以使用 CSS mix-blend-mode 属性和 color 值来实现这一点。

查看 Samuel 的文章以获取交互式演示和更深入的信息,但我认为我会亲自尝试一下,以了解这个想法。

这个想法是,这是一个覆盖在星星之上的覆盖层。 您看不到它,它也不会影响星星,因为它要么是 black 要么是 white,并且 mix-blend-mode: color; 意味着该覆盖层只会影响具有颜色的元素。

如记录的那样,有很多方法可以进行评分星级。 我们之前介绍了五种方法。 其中一种相当巧妙的方法是使用 Unicode 星星(例如,作为文本),然后使用 -webkit-background-clip: text; 填充其背景,这意味着您可以部分填充它们(例如,使用 硬停止 linear-gradient())。 很棒的技巧。

直接链接 →