<link>标记中是否需要type =“ text / css”?


192

我想知道是否有必要使用<link rel="stylesheet" type="text/css" href=...><link rel="stylesheet" href=...>。将rel="stylesheet"信息标记为样式表-因此text/css就我而言,实际上并没有添加任何东西。

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

那么,什么是使用type="text/css"<link rel="stylesheet">元素,是有必要包括它?


1
它可能已实现为服务器的后备,这些服务器没有返回正确MIME-type.css文件,但似乎从来没有必要。我只是为了保持一致性而使用它。
德拉吉

我刚遇到的问题,请不要指定type =“”,否则IE不会加载您的样式表。
mhenry1384

如今,jquery.com网站未使用type="text/css",但Stackoverflow网站仍在使用它。
Marco Demaio

Answers:


149

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的较旧版本时,兼容性也没有出现问题。


24
HTML4规范中可能需要它,但实际上没有浏览器强制执行它。
Spudley

4
好吧,有一种类型的“图像/ ico”
maxisam

2
实际上,HTML4.01规范似乎不需要此type属性。
所有工人都很重要

30

不是必需的,不是。

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

link元件必须具有一个rel属性或itemprop属性,但不能同时使用。

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

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


“作为对用户代理的提示...”是什么意思?什么是“用户代理”?
ScottyBlades

@ScottyBlades好问题!用户代理是可以代表用户进行下载(在本例中)HTML的任何操作。在大多数情况下,这是Web浏览器,但也可能是curl的终端客户端。
alexmuller

6

HTML4.01不需要标签type上的属性<link>。根据规范,该type属性是浏览器的提示。如果浏览器不支持提示的内容类型,则可以跳过获取。

类型=内容类型[CI]

此属性提供有关链接目标地址上可用内容的内容类型的建议性提示。如果建议用户代理将获得不支持的内容类型的内容,则它允许用户代理选择使用后备机制而不是获取内容。

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

  • 注意:<link>遵循属性<a>的定义type

1
这是最有用的答案=>基本上:仅在浏览器可能不支持type =>对Web标准文件(如CSS)无效的情况下才使用type属性。
jave.web

4

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

尽管这已经成为(X)HTML文档样式表的主要(和标准)交付格式,但该规范实际上足够广泛,可以传递各种不同的MIME类型,只是标准浏览器没有实现它们。


1

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


-1

不,它仅表示MIME类型,它已在HTML中弃用,我们可以在没有任何浏览器兼容性的情况下删除它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.