SVG Favicon FTW 你不知道的居然还有这些!
【.com快译】我最近一直在做一辅助项目(Style Check和Bedrocss),知道就像我其他任何长期项目一样,然还我已经到了想要添加favicon的知道地步。
于是然还,我决定尝试使用 SVG 图标,知道在BOO Safari浏览器上是然还足以支持的,但对于一些需求还不是知道达到要求。如果在不受支持的然还浏览器上没有显示图标,也是知道可以接受的。
通过使用 SVG,然还可以获得很多的知道好处,例如:
• 单个文件的然还清晰图像质量
• 对表情符号的支持
• 内联图标(无需链接资源)
• 暗模式检测
为了了解如何将 SVG 图标添加到项目中,因此,知道通过对以下示例(除了表情符号)进行操作,然还我们将使用一个非常基本的知道圆形 SVG:

将 SVG Favicon 添加到 HTML
将favicon添加到网站的语法同以往操作一样,同样适用于 SVG 收藏夹图标(减去文件扩展名)。
在 HTML 文件的<head>标签中,放置一个<link>元素,其rel属性设置为“icon”,href属性设置为图标所在的站群服务器路径。
<link rel="icon" href="path/to/favicon.svg"/>因为我们使用的是 SVG,所以图标可以是任何你想要的大小,只要确保画布是方形的。
如果需要搜索免费图标,icones是一个很好的资源,或者可以使用penpot创建自己的图标。
将 SVG Favicon 内联为 Data-URI
在切换到 SVG 收藏夹图标后,我尝试做的第一件事是看看是否可以将它们与内联格式一起使用,而不是链接到单独的文件。
曾经在内联图像或背景中使用过 Data-URI 技巧,它的效果非常好,并且,也适用于网站图标。
不要链接到路径,而是在整个 SVG 代码前加上data:image/svg+xml;utf8,(包括最后一个逗号)并将整个内容传递给href属性。
<link rel="icon" href="data:image/svg+xml;utf8,<svg...>...</svg>">我真的服务器租用很喜欢这种方法,因为如果忘记将图标文件放在某个文件夹中的某个位置,我可以将此代码复制/粘贴到任何项目(我的大多数副项目都使用相同的图标)。
当然,你可能会觉得这样使用内联 SVG 图标不太好,因为这样会占用内存,并且在每个页面上添加内联 SVG 会增加 HTML 的大小。
如果只有一个网站要处理,这可能不是什么大问题,但对于一个维护多个网站并使用同一个favicon的人来说,是一个不错的选择。
使用表情符号表达Favicon
Lea Verou在推特上展示了如何将表情符号添加为Favicon,使用方法特别简单。
语法的工作原理与之前相同,由于SVG通过<text>元素支持文本内容,并且表情符号几乎都是文本,因此可以在 SVG 中将放置任何表情符号(可能需要四处移动以适应正确的位置一些移动来适应)。
<link rel="icon" href="data:image/svg+xml,<svg xmlns="http://w3.org/2000/svg" viewBox="0 0 100 100"> <text y=".9em" font-size="90">[place emoji here]</text> </svg>" />这使得创建favicon非常容易,而无需创建自定义favicon。查看Bryson Reece提供的emojicon.dev,可以得到一个表情符号列表,b2b供应网点解其中任何一个,将整个favicon片段复制到剪贴板上。
除此之外,Wes Bos还创建了fav.farm。这是一项第三方服务,将为你生成网站图标。可以使用你想要的表情符号直接链接到他的服务。
<link rel="icon" href="https://fav.farm/[place emoji here]" />开发社区的创造力从未停止,在那里有很多很酷、聪明和有创意的开发者。
添加暗模式检测
我们可以在SVG中添加一个<style>标记,并使用prefers color scheme media查询根据用户的暗模式首选项更改图标。
<link rel="icon" href="data:image/svg+xml;utf8,<svg xmlns=http://www.w3.org/2000/svg viewBox=0 0 100 100> <style> svg { background: white; } circle { fill: black; } @media (prefers-color-scheme: dark) { svg { background: black; } circle { fill: white; } } </style> <circle cx="50" cy="50" r="50"/> </svg>">在本例中,我直接针对SVG和<circle>,但你也可以使用类。对于定制SVG,你可能需要这样做。
SVG中的<style>标记包含在该XML文档中,因此你不必担心样式会泄漏到应用程序的其余部分中。
【译稿,合作站点转载请注明原文译者和出处为.com】
相关文章
联想电脑新机使用教程(带你一步步了解联想电脑新机,让你成为电脑操作达人!)
摘要:随着科技的不断进步,联想推出了一款全新的电脑,为用户带来更快、更强大的性能和更好的使用体验。然而,对于一些新手用户来说,上手新机可能会遇到一些困惑和难题。本教程将带领大家逐步了解联...2025-11-04电脑Symn未指定错误的解决方法(解析Symn未指定错误的原因及解决方案)
摘要:随着计算机技术的发展,电脑已经成为人们工作、学习和娱乐的必需品。然而,有时候我们在使用电脑过程中会遇到一些问题,比如Symn未指定错误。本文将重点探讨Symn未指定错误的原因和解决...2025-11-04- 摘要:香港作为一个发达的国际都市,拥有庞大的消费市场和高度竞争的电子产品市场。随着智能手机的普及,索尼手机作为一家知名的品牌,引起了香港消费者的关注。本文将探讨香港索尼手机市场的现状以及...2025-11-04
 深入了解电脑网络628错误代码的原因和解决方法(解析网络连接问题中的628错误代码,助您顺利上网)
摘要:在使用电脑网络时,我们经常会遇到各种连接问题。其中,628错误代码是常见的一种错误提示,阻碍了我们正常上网。本文将深入探讨628错误代码的原因以及解决方法,帮助读者更好地理解和解决...2025-11-04手工制作电脑支架蛋糕教程(用简单材料打造独特创意,将甜点与科技相结合)
摘要:在当今科技高速发展的社会中,电脑已经成为人们生活不可或缺的一部分。为了迎合时代潮流,我们不妨将科技与美食相结合,尝试用手工制作一个独特的电脑支架蛋糕。通过以下教程,你将学会如何用简...2025-11-04- 摘要:随着使用电脑的时间增长,我们的文件和程序变得越来越多,磁盘空间也变得越来越紧张。在这种情况下,磁盘扩容成为了一个必要的解决方案。本文将以戴尔电脑为例,为大家提供一份简明易懂的磁盘扩...2025-11-04
 

最新评论