问题描述
在HTML文档的<link rel="icon">
中引用<head>
时,是否必须使用属性type="[MIME TYPE HERE]"
声明图标图像的 MIME类型 ?
还是type
属性是可选的?
例如
必须写:
<link rel="icon" href="/path/to/my/favicon.png" sizes="57x57" type="image/png">
<link rel="icon" href="/path/to/my/favicon.svg" type="image/svg+xml">
或者仍然有效:
<link rel="icon" href="/path/to/my/favicon.png" sizes="57x57">
<link rel="icon" href="/path/to/my/favicon.svg">
我问这个问题的原因:
今天,关于收藏夹图标,我读到:
主图标可以是任何大小的SVG。方式
type="image/svg+xml"
是不必要的。来源: https://medium.com/swlh/are-you-using-svg-favicons-yet-a-guide-for-modern-browsers-836a6aace3df
省略type
并不会让我感到完全不舒服,但是如果我可以从官方消息来源确认绝对没有必要 ,那么我愿意尝试习惯不包括将来。
解决方法
TLDR:我的初步结论是,type
中的<link rel="icon" />
属性不是必需的,但是包括它是一个好主意。
Mozilla开发人员网络( MDN )指出:
如果有多个
<link rel="icon">
,则浏览器会使用它们的media
,type
和sizes
属性以选择最合适的属性 图标。来源: https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types
网络超文本应用技术工作组( WHAT-WG )指出:
如果提供了多个图标,则用户代理必须选择最多的图标 根据{{1}},
type
和media
的图标 属性[...]没有默认类型的资源 图标关键字。但是,为了确定 资源,用户代理必须期望该资源是图像。来源: https://html.spec.whatwg.org/multipage/links.html#rel-icon
WHAT-WG 还指出:
如果存在
sizes
属性,则用户代理必须假定 资源是给定类型[...]如果属性是 省略,但外部资源链接类型具有默认类型 定义,则用户代理必须假定资源属于该资源 键入[...]如果省略属性,则外部资源链接 类型没有定义默认类型,但是用户代理会 如果类型已知,则获取并处理链接的资源,并 受支持,则用户代理应获取并处理链接的 假设将支持该资源。用户代理不得认为
type
属性具有权威性- 提取资源后,用户代理不得使用type
属性以确定其实际类型。只有 实际类型 [...]是 用于确定是否应用资源,而不是 上述假定类型。来源: https://html.spec.whatwg.org/multipage/semantics.html#concept-link-type-sniffing
所有这些都向我暗示,始终为type
包含type
属性是一个好主意-即使规范未严格要求也是如此。