<head> </ head>中标记的顺序

<head></head><link><script><meta>标签的顺序是什么关系?

(愚蠢的问题,但其中一个我从来没有给任何想法,直到现在。)

接受的答案错误的,这取决于文档的编码。 如果在HTTP头中没有发送编码,浏览器必须从文档本身确定编码。

如果文档使用<meta http-equiv="Content-Type" …声明来声明其编码,那么在此语句之前出现的任何ASCII值的字符(字符代码<128) 必须是ASCII值,按照HTML 4规范 。 因此,这个meta声明出现在任何其他可能包含非ASCII字符的元素之前是很重要的。

优化

据雅虎人士透露, 您应该将CSS放在顶部 , 脚本放在底部,因为脚本会阻止并行下载。 但是,这主要是一个优化的问题,并不是实际工作的页面的关键。 Joeri Sebrechts指出, Cuzillion是一个很好的方法来testing这个,看看自己的速度提高。

多个样式表

如果您链接多个样式表,则链接的顺序可能会影响页面的样式,具体取决于select器的特殊性 。 换句话说,如果您有两种样式表以两种不同的方式定义相同的select器,则后者将优先。 例如:

样式表1:

 h1 { color: #f00; } 

样式2:

 h1 { color: #00f; } 

在这个例子中, h1元素将具有颜色#00f因为它最后被定义为相同的特征:

多个脚本

如果您正在使用多个脚本,则如果其中一个脚本依赖于另一个脚本中的某个脚本,则它们的使用顺序可能很重要。 在这种情况下,如果脚本以错误的顺序链接,则某些脚本可能会引发错误或无法正常工作。 但是,这很大程度上取决于您正在使用的脚本。

build议尽可能使字符编码的元标记。 如果编码不包含在(或不同于)请求页面的响应头中,浏览器将不得不猜测编码是什么。 只有当它find这个元标记,它才知道它正在处理什么,它将不得不再次读取已经parsing的所有东西。

请参阅指示字符集的方法 。

一个重要的事情要注意:如果您使用Internet Explorer元X-UA兼容标签来切换IE的渲染模式,它需要是在头的第一件事:

 <HEAD>
   <meta http-equiv =“X-UA-Compatible”content =“IE = 7”/>
   <title>页面标题</ title>
   ...等等
 </ HEAD>

元无所谓,但链接(对于CSS)和脚本事宜。

脚本将阻止大多数浏览器渲染页面,直到加载脚本。 因此,如果可能的话,不要把它们放在头上,而放在身上。

CSS链接不会阻止页面呈现。

通常build议将<script>标记尽量放在页面的下方(不是在头部,而是在正文中)。

除此之外,我不认为它有很大的区别,因为除非你已经完全加载了<head>部分,否则不能parsing正文。 而且,您希望您的<link>标签处于最佳状态,因为您希望在浏览器呈现您的页面时发生样式,而不是在此之后!

如果你在meta元素中声明字符集,你应该在任何其他元素之前执行它。

根本不是一个愚蠢的问题。
CSS之上的脚本标签原因已经提到。

CSS是按照您放置标签的顺序应用的 – 样式表越具体,则应该放置的顺序越低。

脚本也一样 – 在加载依赖关系之后,应该加载使用在其他文件中声明的函数的脚本。

把声明字符集的元标记作为头中的第一个元素。 浏览器只search标签。 如果元素之前有太多的东西,charset可能不会被应用。

如果使用BASE元素,请将其放在加载URI的元素之前(如果需要)。

只有其中一个链接文件(CSS / Javascript)依赖于另一个。 在这种情况下,所有的依赖项必须先加载。

比方说,你正在加载一个jQuery插件,那么你需要首先加载jQuery本身。 当你有一个扩展其他规则的规则的CSS文件时也是如此。

正如已经指出的,元描述内容字符集应该是第一个,否则在某种情况下实际上可能是一个安全漏洞。 (对不起,我不记得这种情况足以描述在这里,但它已被介绍给我在networking安全培训课程)

我最近有一个可拖动的jQuery UI元素的问题。 它在Firefox中运行正常,但不是Safari。 经过大量的试验和错误之后,修复就是把我的css链接移到头部的javascript链接上面。 很奇怪,但现在将成为我的标准做法。

为了validationXHTML的目的,是的。 否则,你可能会关心优化的答案。

不,除了CSS链接或包含之外,没有关系,因为CSSinheritance和它覆盖了已经devise的事实(对于我的英语感到抱歉,我认为我的句子不是很清楚: – /)。