SVGBOX

Avatar of Chris Coyier
Chris Coyier on

DigitalOcean 为您旅程的每个阶段提供云产品。开始使用 $200 的免费积分!

我多年来一直说,一个非常好的图标 系统就是将图标与内联 <svg> 放在你需要的地方。这很简单,可以提供完全的设计控制,具有(通常)良好的性能,这意味着你不会因缓存和浏览器支持问题而头疼。

沿着这条思路…使用 <img> 也不是最糟糕的图标想法。它不提供那么细粒度的设计控制(尽管你可以仍然使用 filter 对它们进行滤镜处理),并且可以说没有那么快(因为图像需要单独从文档中获取),但它仍然具有与内联 SVG 图标许多相同的优势。

Shubham Jain 有一个名为 SVGBOX 的项目,它提供图标作为 <img>,并通过提供一个 URL 参数来更改颜色来消除一个设计控制限制。

想要一个 Instagram 图标,但要用红色?传入 red

如果你要使用一堆图标,提供的复制粘贴代码提供了一个“SVG 精灵”版本,其中 URL 类似于这样

<img src="//s.svgbox.net/social.svg?fill=805ad5#instagram">

这将增加图标的下载权重(因为它正在下载来自此集合的所有图标),但可能更有效,因为它是单个下载,而不是多个下载。很难说这些天是否更有效,随着 HTTP/2 的出现

有趣的是 URL 末尾的 #instagram 部分。只是一个哈希链接,对吧?不!更高级!在 SVG 领域,它可以是 片段标识符,这意味着它将只显示与正确 <view> 元素匹配的 SVG 部分。这种事情不常见。

直接链接 →