除了PNG是一种更常见的图像格式之外,还有什么技术上的原因让我们更喜欢favicon.png而不是favicon.ico吗?
我支持所有支持PNG收藏图标的现代浏览器。
除了PNG是一种更常见的图像格式之外,还有什么技术上的原因让我们更喜欢favicon.png而不是favicon.ico吗?
我支持所有支持PNG收藏图标的现代浏览器。
当前回答
ico可以是png。
更准确地说,你可以在这个最小的容器格式中存储一个或多个png,而不是通常的位图+alpha,每个人都强烈地与ico关联。
Support已经很老了,出现在Windows Vista(2007)中,浏览器也很支持它,不过图标编辑软件不一定支持它。
任何有效的png(包括头)都可以以一个6字节的ico头和16字节的图像目录作为前缀。 GIMP具有本机支持。只需导出为ico,并勾选“压缩(PNG)”。
其他回答
PNG有两个优点:它的尺寸更小,它的使用和支持更广泛(favicons除外)。 如前所述,ICO可以有多个大小的图标,这对桌面应用程序很有用,但对网站来说并不太多。 我建议你把favicon.ico放在应用程序的根目录中。一个如果你有访问你的网站页面的头部使用标签指向一个png文件。 旧的浏览器会显示favicon.ico,新浏览器显示png。
要创建Png和图标文件,我建议使用Gimp。
所有现代浏览器(在Chrome 4、Firefox 3.5、IE8、Opera 10和Safari 4上进行了测试)总是会请求favicon.ico,除非你通过<link>指定了一个快捷图标。因此,如果没有显式指定,最好始终使用favicon.ico文件,以避免出现404错误。雅虎建议你把它做得小一点,可缓存。
你也不必为了alpha透明度而使用PNG。ICO文件很好地支持alpha透明度(即32位颜色),尽管几乎没有任何工具允许您创建它们。我经常使用动态驱动器的FavIcon生成器创建alpha透明的FavIcon .ico文件。这是我所知道的唯一能做到的在线工具。
还有一个免费的Photoshop插件可以创建它们。
ico文件理论上的优势是它们是可以容纳多个图标的容器。例如,您可以存储带有alpha通道的图像和用于遗留系统的16色版本的图像,或者您可以添加32x32和48x48图标(当拖动链接到Windows资源管理器时将显示)。
然而,这个好主意往往与浏览器实现相冲突。
一些社交工具,如谷歌+使用一个简单的方法来获取外部链接的图标,抓取 http://your.domainname.com/favicon.ico
因为它们不预取HTML内容,<link>标记将不起作用。在这种情况下,您可能希望使用mod_rewrite规则,或者只是将文件放置在默认位置。
.png文件很好,但是.ico文件也提供alpha通道的透明度,而且它们还提供向后兼容性。
看看StackOverflow使用的是哪种类型(注意它是透明的):
<link rel="shortcut icon" href="https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico">
<link rel="apple-touch-icon" href="https://cdn.sstatic.net/Sites/stackoverflow/Img/apple-touch-icon.png">
apple-itouch是为iphone用户设计的一个网站快捷方式。