除了 PNG 是一种更常见的图像格式这一事实之外,是否有任何技术理由支持 favicon.png 与 favicon.ico?
我支持现代浏览器,它们都支持 PNG 最喜欢的图标。
所有现代浏览器(用 Chrome 4、Firefox 3.5、IE8、Opera 10 和 Safari 4 测试)总是会请求 a favicon.ico
,除非您通过<link>
. 因此,如果您没有明确指定一个,最好始终有一个favicon.ico
文件,以避免 404。Yahoo !建议您将其缩小且可缓存。
而且您也不必为了 alpha 透明度而选择 PNG。ICO 文件很好地支持 alpha 透明度(即 32 位颜色),尽管几乎没有任何工具允许您创建它们。我经常使用Dynamic Drive 的 FavIcon Generator来创建favicon.ico
具有 alpha 透明度的文件。这是我所知道的唯一可以做到这一点的在线工具。
还有一个免费的Photoshop 插件可以创建它们。
由于此线程中其他人的大量更新和注释,答案被替换(并转为社区 Wiki):
请随时在此处查阅其他答案以获取更多详细信息。
.png 文件很好,但 .ico 文件也提供 alpha 通道透明度,而且它们还为您提供向后兼容性。
例如,看看StackOverflow使用哪种类型(注意它是透明的):
<link rel="shortcut icon" href="http://sstatic.net/so/favicon.ico">
<link rel="apple-touch-icon" href="http://sstatic.net/so/apple-touch-icon.png">
apple-itouch thingy 适用于制作网站快捷方式的 iPhone 用户。
*.ico 文件的理论优势在于它们是容器,不能容纳多个图标。例如,您可以为旧系统存储带有 alpha 通道和 16 色版本的图像,或者您可以添加 32x32 和 48x48 图标(例如,在将链接拖到 Windows 资源管理器时会显示)。
然而,这个好主意往往会与浏览器实现发生冲突。
PNG有两个优点:它的尺寸更小,使用和支持更广泛(除非是网站图标)。之前提到过 ICO,可以有多种尺寸的图标,这对桌面应用很有用,但对网站来说不是太多。我建议您将 favicon.ico 放在应用程序的根目录中。如果您有权访问网站页面的 Head,请使用该标签指向 png 文件。所以较旧的浏览器将显示 favicon.ico 和较新的 png。
要创建 Png 和图标文件,我会推荐The Gimp。
一些社交工具(如 Google+)使用一种简单的方法来获取外部链接的 favicon,获取 http://your.domainname.com/favicon.ico
由于它们不预取 HTML 内容,因此该<link>
标签将不起作用。在这种情况下,您可能想要使用 mod_rewrite 规则或只是将文件放在默认位置。
ico 可以是png。
更准确地说,您可以在这种最小的容器格式中存储一个或多个 png,而不是每个人都与 ico 强烈关联的通常的 bitmap+alpha。
支持是旧的,出现在 Windows Vista (2007) 中,浏览器很好地支持,但不一定是图标编辑软件。
任何有效的 png(包括标题在内)都可以在前面加上一个6 字节的 ico 标题和 16 字节的图像目录。
GIMP 具有本机支持。只需导出为 ico 并勾选“压缩 (PNG)”。
为了它的价值,我这样做:
<!-- Favicon - Generic -->
<link rel="icon" href="path/favicon-32_x_32.png" sizes="32x32">
<link rel="icon" href="path/favicon-57_x_57.png" sizes="57x57">
<link rel="icon" href="path/favicon-76_x_76.png" sizes="76x76">
<link rel="icon" href="path/favicon-96_x_96.png" sizes="96x96">
<link rel="icon" href="path/favicon-128_x_128.png" sizes="128x128">
<link rel="icon" href="path/favicon-192_x_192.png" sizes="192x192">
<link rel="icon" href="path/favicon-228_x_228.png" sizes="228x228">
<!-- Favicon - Android -->
<link rel="shortcut icon" href="path/favicon-196_x_196.png" sizes="196x196">
<!-- Favicon - iOS -->
<link rel="apple-touch-icon" href="path/favicon-120_x_120.png" sizes="120x120">
<link rel="apple-touch-icon" href="path/favicon-152_x_152.png" sizes="152x152">
<link rel="apple-touch-icon" href="path/favicon-180_x_180.png" sizes="180x180">
而且我仍然将 favicon.ico 保留在根目录中。
如果您想要可靠的 IE6 兼容性,请在任何情况下避免使用 PNG。