为什么<style href =“min.css”> </ style>

我的一个开始学习Web开发的亲戚问我这个问题。

为什么<script src="min.js"></script>但是<link rel="stylesheet" href="min.css">为什么不是<style href="min.css"></style> link标签添加外部CSS在页面中,但当我们链接到页面的CSS,但我们使用<style>...</style>当我们在<head>写入CSS?

我告诉他,这是因为规范。 有没有更多的信息给他?

这是历史……巧合? 你可以推荐他阅读关于diveintohtml5.info的过去的部分 ,其中有一些有趣的故事,实际上是邮件信件,在networking开发者之间。 networking开发者意味着他们实际上正在开发我们现在看到的networking;)

Ie <img>标签我们习惯于:

 <IMG SRC="file://foobar.com/foo/bar/blargh.xbm"> 

可能:

 <ICON name="NoEntry" href="http://note/foo/bar/NoEntry.xbm"> 

要么

 <A HREF="..." INCLUDE>See photo</A> 

要么

 <INCLUDE HREF="..."> 

但最终开发者决定坚持已经实施的<img>

在这一点上我们不准备支持INCLUDE / EMBED。 …所以我们可能会去(不ICON,因为并不是所有的内联图像可以有意义的图标)。 目前,内联图片将不会被明确的内容types; 在这条路上,我们计划支持这个(随着MIME的普遍适应)。 实际上,我们目前使用的图像阅读程序正在dynamic地绘制图像格式,所以文件扩展名不会很重要。

我不知道直接回答你的问题,但我也很好奇<link>标签。 寻找答案可能会包括一些networking档案挖掘。

至less从W3C的angular度来看,有一个区别。

一个<style>元素引入了一个适用于当前文档的CSS规则块。 然而,外部样式表实际上被认为是与当前页面相关的整个文档,并且用户代理可以自由地忽略这些文档,这取决于链接的typemedia属性。 例如:

 <link rel="stylesheet" type="text/css" media="screen" href="screen.css" /> <link rel="stylesheet" type="text/css" media="print" href="print.css" /> 

在这种情况下,用户代理通常只会遵循其中一个链接,或者是一个screen (用于正常渲染)或者是一个print (用于打印)。 这个想法是通过只下载适当的资源来保留带宽,而不是在稍后获取所有内容和过滤媒体types。

这在规范中提到:

LINK元素将外部样式表链接到文档时, type属性指定样式表语言, media属性指定预期的呈现媒介。 用户代理可以通过从networking中检索仅适用于当前设备的样式表来节省时间。

它们都具有基本相同的含义,并且在HTML中发现了某种不一致。 原因是标准是基于不同浏览器的实现。 不同的浏览器提出了不同标签中的属性,W3C只是决定保留一些不一致的地方,以保持向后兼容性。

使用srcscript img iframe input video frame元素

使用href元素: a link base

这可能会解释一些事情,我想: http : //www.w3.org/TR/html4/struct/links.html

<link>标签用于将其他文档“链接”到当前文档,并用它来描述它的关系或rel

您也可以使用<link>将其他内容链接到文档。 例如,favicon:

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

link refstyle可能原因:

link只能在head ,“元数据内容”被允许,通常是head

style不能在HTML5之前进入body (现在你可以使用scoped ,但仍然不能使用外部样式)。 因此, link refstyle src之间的select是任意的。

script ,但是,可能已经包含在HTML5之前的body外部脚本,所以必须有script src 。 但是由于它必须存在,为什么不允许它在headscript已经被允许),并且禁止link rel=script以避免重复?