有趣的SVG+Favicon应用
favicons
是在浏览器选项卡中看到的小图标,当浏览浏览器的书签和标签时,它们可以帮助用户清晰的知道是哪个网站。它们是互联网历史的一部分,能够实现一些很酷的效果。
一个非常新的技巧是能够将 SVG
用作 favicon
,现在大部份浏览器都支持这一特征。
以下是如何向网站添加收藏夹图标的代码:
<link rel="icon" type="image/svg+xml" href="/favicon.svg"> <link rel="alternate icon" href="/favicon.ico"> <link rel="mask-icon" href="/safari.svg" color="#1454ec">
如果浏览器不支持 SVG 图标,它将忽略第一个链接元素声明并继续第二个,这确保了所有支持网站图标的浏览器都可以正常显示。
细心的你可能发现第二行中 rel
声明的备用属性值,这是向浏览器声明,使用.ico
文件格式的 favicon
是专门用作替代表示的。
最后一行代码,用于加载另一个 SVG 图标,名为safari.svg
。这是为了支持 Safari 的固有的标签功能,这个功能在其他浏览器支持 SVG favicon
之前就存在了。当然也可以在这里添加额外的文件,以针对不同的应用程序和服务增强网站。
以下是有关 SVG favicons
浏览器支持情况,截图数据来自 Caniuse :
为什么要用SVG
.ico
文件格式很早就存在,可以支持最大 256×256
像素的图像,为什么要用svg?
容易制作
制作.ico
文件很痛苦,现在一般通过在线网站来转换。该文件是 Microsoft 使用的专有格式,这意味着需要专门的工具来制作它们。 SVG 是一个开放标准,这意味着可以使用它们而无需任何进一步的工具或平台锁定。
面向未来
视网膜? 5K、 6k,当为网站图标使用对分辨率无感的 SVG 文件时,在确保网站图标在未来的设备上看起来也很清晰,无关显示器分辨率大小。
性能
SVG 通常是非常小的文件,特别是与它们的光栅图像对应的文件相比甚至更小。通过仅使用 16×16
像素 favicon
作为不支持 SVG 的浏览器的兼容方案,提供了一个组合设置,使其具有高度的兼容性。
使用技巧
SVG 的另一个很酷的地方是可以直接在其中嵌入 CSS,这意味着可以做一些有趣的效果,比如用 JavaScript 动态调整它们,前提是 SVG 被声明为内联而不是使用 img
标签嵌入。
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"> <style> path { fill: #272019; } </style> <!-- etc. --> </svg>
由于 SVG 图标是使用 link 元素嵌入的,因此无法真正使用 JavaScript 对其进行修改。但是,可以使用 emoji
和 media
之类的技术。
Emoji
Emoji表情符号作为网站图标,在SVG的文本元素中使用表情符号来制作一个带有透明背景的小图标,以此作为网站的图标。如有兴趣,可以点击这里查看DEMO 。
暗黑模式支持
使用 preferred -color-scheme
媒体查询来支持暗黑模式。对于支持的浏览器,很简单就可以实现此效果。
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"> <style> path { fill: #1454ec; } @media (prefers-color-scheme: dark) { path { fill: #ffffff; } } </style> <path d="m8 0 1.669.864 1.858.282.842 1.68 1.337 1.32L13.4 6l.306 1.854-1.337 1.32-.842 1.68-1.858.282L8 12l-1.669-.864-1.858-.282-.842-1.68-1.337-1.32L2.6 6l-.306-1.854 1.337-1.32.842-1.68L6.331.864 8 0z"/> <path d="M4 11.794V16l4-1 4 1v-4.206l-2.018.306L8 13.126 6.018 12.1 4 11.794z"/> </svg>
正常效果
暗黑模式效果
总结
favicons 在大小上的不足,在用户体验上弥补。这些图标在网站上作为用户的导航工具,往往会留下浏览器标签。
通常情况下,favicon 是一个快速的视觉标识符,它将用户与数字呈现联系起来。建议使用中以确保它是最好的,更准确地代表品牌。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
到底是先更新数据库还是先更新缓存?
大家好,我是冰河~~ 最近小伙伴最近都在问我,在系统中引入缓存后,当向数据库中写入数据时,是先写数据库还是先写缓存呢?先写数据库和先写缓存有什么区别吗?今天,我们就一起来聊聊这个话题。 从本质上讲,无论是先写数据库还是先写缓存,都是为了保证数据库和缓存的数据一致,也就是我们常说的数据一致性。 随着互联网的高速发展,当今时代已然从IT时代进入到DT时代。互联网系统架构也已经由最初的单体架构转变为分布式、微服务架构模式。从数据体量上来看,各系统存储的数据量越来越大,数据的查询性能越来越低。此时,就需要我们不断的进行优化,一种常用的优化手段就是引入缓存。而引入缓存后,我们在向数据库插入数据时,到底是先更新数据库还是先更新缓存呢? 缓存的一般使用 缓存,从本质上讲,是为了更好的协调两个速度差异比较大的组件而引入的一种中间缓存层。例如,如果需要将数据读入CPU进行计算处理,由于CPU的运算速度是非常快的,而磁盘的IO处理相比于CPU来说,慢了很多数量级,每次从磁盘读取数据,势会造成CPU长时间并且频繁等待磁盘IO。此时,我们就可以通过内存来缓和CPU和磁盘之间的速度差异。 从缓存的使用上来说,一...
- 下一篇
为什么 HTTP/3 基于UDP,可靠么?
对网络技术有一定研究的同学一定知道,HTTP/3竟然是基于UDP的。在很多同学的印象里,UDP属于一种非常低级的协议:传输不可靠,没有拥塞机制,把它用在准确可靠的万维网传输上,是一件不可想象的事情。 然而,真的是这样吗?我们先把吃惊的嘴合上,一起来看一下,为什么HTTP/3可以基于UDP,并且这还是一种非常聪明的选择。 要明白这个选择,我们首先就得消除一下对于UDP的误解。 1. UDP是最纯洁的传输层协议 实际上,UDP并不是像大家想象中的那样不可信,它只是因为简单,才让你有这样的认知。从另一个角度来说,它其实是最纯洁的传输层协议。 那么UDP在网络传输中,到底处于一个什么位置呢?我们需要简单看一下典型的网络分层。 物理层和连接层 物理层处于网络的最下层,它处理的消息,全部是1和0,这是硬件层面的东西,保证了我们的信息能够正常交流 连接层对这些1和0进行了初步的整合,组成了固定长度的信息帧(frame),每个信息帧里面,都包含SRC和DST(这里是mac地址),得以让我们的两台机器进行点对点通信 这时候网络数据包还不能逃离局域网,想要更大规模的传输,就需要网络层的帮助。 网络层 为了...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8
- 2048小游戏-低调大师作品