<link> 标签中是不是需要 type="text/css" ?

Posted

技术标签:

【中文标题】<link> 标签中是不是需要 type="text/css" ?【英文标题】:Is type="text/css" necessary in a <link> tag?<link> 标签中是否需要 type="text/css" ? 【发布时间】:2011-07-21 12:21:29 【问题描述】:

我想知道是否有必要使用&lt;link rel="stylesheet" type="text/css" href=...&gt; 而不是&lt;link rel="stylesheet" href=...&gt;rel="stylesheet" 标记了它是一个样式表的信息——所以就我而言,text/css 实际上并没有添加任何东西。

无论如何,html 使用的唯一样式表格式是 CSS,那么 text/css 对浏览器“说”什么呢?一些网站似乎添加了type="text/css" 属性(http://www.jquery.com/),而其他网站则没有(http://www.youtube.com/)。

那么,type="text/css"&lt;link rel="stylesheet"&gt; 元素中有什么用,有必要包含它吗?

【问题讨论】:

它可能已被实施以作为服务器的后备,这些服务器在.css 文件上没有返回正确的MIME-type,但似乎从来没有必要。我只是为了保持一致性而使用它。 我刚刚遇到的东西,不要指定 type="" 否则 IE 不会加载你的样式表。 现在jquery.com 站点不使用type="text/css",但 *** 站点仍在使用它。 【参考方案1】:

HTML5 规范不需要它,但对于旧版本的 HTML 是必需的。

HTML 4 W3.org 规范

http://www.w3.org/TR/html40/struct/links.html#edef-LINK http://www.w3.org/TR/html40/present/styles.html

Type 代表样式表的 MIME 类型。我见过的唯一受支持的值是 Text/CSS,这可能是 HTML5 放弃它的原因。我想他们已经为早期版本提供了它,以允许未来从未发生过的扩展可能性。

使用 HTML5 并且不指定类型,到目前为止,即使在测试旧版本的 IE 时,我也没有遇到兼容性问题。

【讨论】:

HTML4 规范中可能需要它,但实际上没有浏览器强制它。 嗯,“image/ico”有一个类型 实际上,HTML4.01 规范似乎不需要type 属性。【参考方案2】:

这不是必需的,不。

您感兴趣的 HTML 生活标准部分是 The link element,其中指出:

link 元素必须具有rel 属性或itemprop 属性,但不能同时具有两者。

type 属性给出了链接资源的 MIME 类型。这纯粹是建议性的。该值必须是有效的 MIME 类型字符串。

对于外部资源链接,type 属性用作对用户代理的提示...

【讨论】:

“作为对用户代理的提示...”是什么意思?什么是“用户代理”? @ScottyBlades 好问题!用户代理是可以代表用户下载(在这种情况下)HTML 的任何东西。大多数时候它是一个网络浏览器,但它也可能是一个终端客户端,比如 curl。【参考方案3】:

HTML4.01 不需要&lt;link&gt; 标记上的type 属性。根据规范,type 属性是对浏览器的提示。如果浏览器不支持提示的内容类型,那么它可以跳过获取它。

类型 = 内容类型 [CI]

此属性提供有关链接目标地址处可用内容的内容类型的建议提示。它允许用户代理选择使用回退机制,而不是在被告知他们将获取他们不支持的内容类型的内容时获取内容。

使用此属性的作者负责管理可能与链接目标地址上的可用内容不一致的风险。

注意:&lt;link&gt; 遵循&lt;a&gt;type 属性的定义。

【讨论】:

这是最有帮助的答案 => 基本上:只有在浏览器可能不支持 type 时才使用 type 属性 => 对于 CSS 等 Web 标准文件无用。【参考方案4】:

我的理解是允许以 text/css 以外的格式指定样式表。

虽然这已成为 (X)HTML 文档样式表的主要(和标准)交付格式,但该规范实际上足够广泛,可以通过各种不同的 MIME 类型,只是标准浏览器不实施它们。

【讨论】:

【参考方案5】:

与大多数人无关,但某些系统(至少 Microsoft SharePoint 2013)在确定如何处理 HTML 时(例如,在创建 .master 页面文件时)会使用此类型属性。

【讨论】:

【参考方案6】:

不,它只是代表 MIME 类型,它在 HTML 中已被弃用,我们可以在没有任何浏览器兼容性的情况下放弃使用它。

【讨论】:

以上是关于<link> 标签中是不是需要 type="text/css" ?的主要内容,如果未能解决你的问题,请参考以下文章

你懂SCRIPT标签和LINK标签吗?

如何根据使用的 IOS 设备在 head 标签中使用不同的 <link> 标签?

link标签的rel属性

link标签的rel属性

html中link的用法

h5标签基础 link标签