标签可以在有效的HTML之后发生

时间:2015-06-02 13:01:16

标签: html

我尝试使用带有标记的html文件加载浏览器,它似乎正确加载。

<HTML>
 <BODY>
This is body
</BODY>
<HEAD>
</HEAD>
</HTML>

这是否符合HTML规范? HTML specs文档似乎没有指定元素的位置

在实践中,我相信HEAD将始终位于BODY之前,但我不知道HTML解析器是否也实现了这种位置关系

2 个答案:

答案 0 :(得分:2)

浏览器在阅读时处理标记 - 将<head>元素放在<body>下方意味着您的内容将以无格式方式显示,直到<head>中链接到的CSS文档为止。这种方法可能存在其他问题。

另外 - 如果您正在学习HTML - 跳过HTML4.01并深入研究HTML5 - 每个人都支持它,而且现在它非常规范。学习HTML4.01就像在20世纪学习欧洲英语。

Anywho - HTML4.01手册确实说HEAD必须在BODY之前 - 只是不是用简单的英语。有一个HTML4.01严格文档类型声明的片段:

<!ENTITY % html.content "HEAD, BODY">

<!ELEMENT HTML O O (%html.content;)    -- document root element -->

这是验证规则,其中<html>必须按特定顺序包含<head><body>

HTML5不使用文档类型 - 但标准更明确地为headbody编写:

  

4.2.1头元素

     

分类

     

无。

     

可以使用此元素的上下文:

     

作为html元素中的第一个元素。

...

  

4.3.1正文元素

     

分类

     

切根。

     

可以使用此元素的上下文:

     

作为html元素中的第二个元素。

答案 1 :(得分:0)

不,你不能。浏览器会解释它,但这并不意味着您的代码是正确的。 你应该在w3c验证器https://validator.w3.org/中运行你的代码它会告诉你需要保持html,head,body

的顺序