2015-05-22 109 views
0

我有一个困惑,我经历了一个使用jsp编写的页面编码嵌入html,我的任务是改变一些HTML的东西。HTML标头的重要性

在我发现有结束标记</html>但开发人员不启动<head>

但是该页面没有任何问题。

我需要澄清的是,这种方法总是有效吗?或者是否有任何问题发生的可能性?

因为我必须添加编码,支持IE9和编码关于落实引导

+4

即使不包含所有标准HTML元素,现代浏览器也会呈现该页面。包含''标签很重要,因为它提供了有用的信息,例如页面标题,元信息和样式表等。但是从技术上讲,浏览器不需要头标签来呈现页面。 –

+1

请意识到浏览器会为你做什么不同于['的HTML规范](http://www.w3.org/TR/html5/document-metadata.html#the-head-element )要求。在特殊情况下,您不需要'',但在正常情况下它是必需的。如果你让一个浏览器做一些缺失但需要的'',那么你就依赖于特定于浏览器的行为,这些行为在供应商之间可能会有所不同,并可能随着时间而改变。 – ajp15243

回答

1

修正,在HTML5中,你不需要<head />但你需要一个<title />除非这个HTML是一个iframe或类似的电子邮件的内容:

如果文档是iframe srcdoc文档或如果标题信息 可以从更高级别的协议:的 元数据内容的零个或更多的元件,不超过一个,其中是一个标题元素,没有 不止一个是基本元素。否则: 元数据内容的一个或多个元素,其中一个是标题元素,而另一个是基本元素。

所以这不是有效的HTML,但浏览器,无论好坏,让开发人员摆脱了很多废话。如果你支持传统的浏览器,如果你忽略了头部,事情可能会变得很奇怪。

因此,以下两种都被认为是有效的HTML5文档。

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Title</title> 
    </head> 
</html> 

<!-- Valid HTML5, but not valid HTML4 --> 
<!DOCTYPE html> 
<html> 
    <title>Title</title> 
</html> 

您可以用W3C's Markup Validator进行检查。

以下是有关遗漏完整规范的HTML5:如果HTML元素中的第一件事情是不是注释

  • 一个HTML元素的开始标记可以省略。
  • 如果html元素后面没有注释,可以省略html元素的结束标记。
  • 如果元素为空,或者头元素内的第一个元素是元素,则可以省略头元素的开始标记。
  • 如果头元素后面没有紧跟空格字符或注释,则可以省略头元素的结束标记。
  • 如果元素为空,或者如果body元素中的第一个元素不是空格字符 或注释,则除非body元素中的第一个元素是 脚本,否则可以省略body元素的开始标记或样式元素。
  • 如果body元素后面没有注释,则可以省略body元素的结束标记。
+0

我知道基本的HTML元素,我不得不改变另一个开发人员创建的文件,然后我得到这个混淆。因此澄清它可能对我继续工作 – Kuru

+0

您*可能*在某些较旧的浏览器中发生错误,所以为了防万一添加它会是明智之举。在生产中使用某些东西时,尤其是如果您认为自己是专业人士,那么在代码中出现蓬头垢面和错误的代码也不是一个好习惯。 – fny