浏览器如何为网站选择网站图标?

时间:2019-04-23 05:53:58

标签: html google-chrome firefox browser favicon

当一个网站提供多个link标签图标时,浏览器将采用哪种规则来确定实际使用哪个图标?

例如,IMDB的html src包含以下代码段:

<link href="https://m.media-amazon.com/images/G/01/imdb/images/safari-favicon-517611381._CB483525257_.svg" mask="" rel="icon" sizes="any">
<link rel="icon" type="image/ico" href="https://m.media-amazon.com/images/G/01/imdb/images/favicon-2165806970._CB470047330_.ico">
<meta name="theme-color" content="#000000">
<link rel="shortcut icon" type="image/x-icon" href="https://m.media-amazon.com/images/G/01/imdb/images/desktop-favicon-2165806970._CB484110913_.ico">
<link href="https://m.media-amazon.com/images/G/01/imdb/images/mobile/apple-touch-icon-web-4151659188._CB483525313_.png" rel="apple-touch-icon"> 
<link href="https://m.media-amazon.com/images/G/01/imdb/images/mobile/apple-touch-icon-web-76x76-53536248._CB484146059_.png" rel="apple-touch-icon" sizes="76x76"> 
<link href="https://m.media-amazon.com/images/G/01/imdb/images/mobile/apple-touch-icon-web-120x120-2442878471._CB483525250_.png" rel="apple-touch-icon" sizes="120x120"> 
<link href="https://m.media-amazon.com/images/G/01/imdb/images/mobile/apple-touch-icon-web-152x152-1475823641._CB470042035_.png" rel="apple-touch-icon" sizes="152x152">            

选择了哪个图标,其他图标又用来做什么?

我注意到带有rel="shortcut icon"的那个总是设置为最高优先级。如果是这样,浏览器将如何处理带有多个shortcut icon标签的网页?

2 个答案:

答案 0 :(得分:2)

  

浏览器将如何处理带有多个快捷方式图标标记的网页?

我已经通过实验测试,当提供多个shortcut icon链接时,只要每个链接具有一些不同的属性(例如类型或大小),浏览器就会根据屏幕等因素选择最佳图标DPI或接受的MIME类型。

事实上,我制作的网站的标题标签中包含以下代码段:

<link rel="shortcut icon" href="/favicon.ico" type="image/vnd.microsoft.icon" sizes="16x16">
<link rel="shortcut icon" href="/assets/16x16.png" type="image/png" sizes="16x16">
<link rel="shortcut icon" href="/assets/32x32.png" type="image/png" sizes="32x32">

我注意到,每个现代浏览器都会选择图标的PNG版本。实际上,我没有看到该图标的MS-ICO版本的任何用法,尽管我还没有测试过较旧的浏览器(例如IE的较旧版本)是否会选择PNG版本的ICO版本。

使用HiDPI屏幕时,我注意到将选择32x32版本,以便在选项卡中显示为16x16 @ 2x图标。否则,将选择16x16版本。将浏览器窗口从HDPI移到非HDPI浏览器窗口将使浏览器重新评估当前图标,并在需要时对其进行更改。

答案 1 :(得分:0)

用于创建书签图标的正确链接关系(link rel="")不包含单词“ shortcut”。 根据此页面:https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types

  

快捷方式链接类型通常出现在图标之前,但是此链接类型不符合标准,已被忽略,网络作者不得再使用它。

有些网站甚至没有声明图标。所有浏览器都只会在您网站的根目录级别检查( favicon.ico )文件。

快捷方式只是一种用于指定未命名为 favicon.ico 的图标的解决方法。

即,如果您需要在各个页面或子域中使用多个图标,则必须使用“快捷方式”。 (还需要指定特定ICO文件的路径。)

<link rel="shortcut icon" href="path/to/icon.ico" />