favicon.png vs favicon.ico – 为什么我应该使用PNG而不是ICO?
除了PNG是一个更常见的图像格式的事实,是否有任何技术理由赞成favicon.png与favicon.ico?
我支持所有支持PNG最喜欢的图标的现代浏览器。
回答replace(并转向社区Wiki)由于无数更新和来自其他各方的注意:
- ICO和PNG都允许完全基于Alpha通道的透明度
- ICO允许向后兼容旧浏览器(例如IE6)
- PNG可能对透明度有更广泛的工具支持,但您也可以find创buildalpha通道ICO的工具 ,例如@mercator提到的Dynamic Drive工具和Photoshop插件 。
请随时咨询其他答案这里的更多细节。
除非您通过<link>
指定了快捷方式图标,否则所有现代浏览器(经过Chrome 4,Firefox 3.5,IE8,Opera 10和Safari 4testing)都会请求favicon.ico
。 所以如果你没有明确地指定一个,最好总是有一个favicon.ico
文件,以避免404。 build议你把它做得很小并且可以caching。
而且,您也不必为了透明度而selectPNG。 ICO文件支持alpha透明度(即32位颜色),虽然几乎没有任何工具可以让你创build它们。 我经常使用Dynamic Drive的FavIcon Generator来创buildalpha透明的favicon.ico
文件。 这是我所知道的唯一可以做到的在线工具。
还有一个免费的Photoshop插件可以创build它们。
.png文件很好,但是.ico文件也提供了alpha通道的透明性, 再加上它们可以提供向后的兼容性。
看看哪种types的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">
苹果itouch的东西是iphone用户,使一个网站的捷径。
* .ico文件的理论优势在于它们是容器,可以容纳多个图标。 例如,您可以存储具有Alpha通道的图像和旧版系统的16色版本,或者可以添加32×32和48×48图标(将链接拖到Windows资源pipe理器时应该可以启动)。
然而,这个好主意往往会与浏览器实现冲突。
PNG有两个优点:尺寸更小,使用更广泛,支持(除favicon外)。 正如前面提到的ICO,可以有多个大小的图标,这是有用的桌面应用程序,但不是太多的网站。 我会build议你把你的应用程序的根favicon.ico。 如果你有权访问你的网站的头部使用标签指向一个PNG文件。 所以老的浏览器会显示favicon.ico和新的PNG。
要创buildPng和图标文件,我会推荐The Gimp 。
像Google+这样的社交工具使用一个简单的方法来获取外部链接的图标,获取http://your.domainname.com/favicon.ico
由于不会预取HTML内容,所以<link>
标记将不起作用。 在这种情况下,您可能需要使用mod_rewrite规则,或者将文件放在默认位置。
如果您想要可靠的IE6兼容性,请避免使用PNG。
一个ico可以是一个PNG。
更确切地说,你可以在这个最小的容器格式中存储一个或多个PNG,而不是每个人都强烈地与ico关联的通常的位图+ alpha。
支持是旧的, 出现在Windows Vista (2007),并得到了浏览器的支持,但不一定是图标编辑软件。
任何有效的png(包括头文件在内)都可以由一个6字节的头文件和16字节的图片目录作为前缀。
GIMP有本地支持。 只需导出为ico并勾选“压缩(PNG)”。