HTML5技术

HTML5标准学习 - 文档结构 - jerrylsxu

字号+ 作者:H5之家 来源:博客园 2016-03-03 11:00 我要评论( )

说起HTML的结构,很多人都能说得头头是道,一般来说答案可能是这样的: 一个DOCTYPE,一个html,里面有head和body元素。 这当然不能说是不正确的,但是如果问到一个最小的HTML源文件必须有哪一些东西的话,恐怕很少有人能正确地做出回答。 先来回答一下这个

说起HTML的结构,很多人都能说得头头是道,一般来说答案可能是这样的:

一个DOCTYPE,一个html,里面有head和body元素。

这当然不能说是不正确的,但是如果问到一个最小的HTML源文件必须有哪一些东西的话,恐怕很少有人能正确地做出回答。

先来回答一下这个问题,一个最简的HTML5源码文件需要的内容如下:

<!DOCTYPE html>

是的,就这样,一个字符不多,一个字符不少,除了大小写可任意变化外,其他的任何内容都是不能变动的。

那么究竟是怎么样的规则,导致一个最简的源码文件必须有doctype声明呢?根据标准,一个HTML文档有如下内容组成(严格按照顺序):

这里存在着一些和HTML4的不同,一个HTML4的最简源码文件是这样的:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <title>这里是标题</title>

两者的区别是显而易见的:

  • HTML5把DOCTYPE修改为更简单的<!DOCTYPE html>,这个已经众所周知了。
  • 在HTML4中多了一个<title>标签。
  • 这里的重点就是<title>标签了,关于这个标签,在中是这么说的:

    Every HTML document must have a TITLE element in the HEAD section.

    也即是说,HTML4要求<title>标签是必须存在的。

    而在中,又是这么说的:

    There must be no more than one title element per document.

    HTML5中只设定了<title>标签数量的上限,却没有指明下限,也就是说,没有<title>的文档已经被视为一个合法的文档了。

    对于DOCTYPE,HTML4中设定了6种DOCTYPE,HTML5中将DOCTYPE分为3种,这个在以后的章节中再具体说明。

    再回过来看一下文档组成,除去0-n个空格或注释这样并没有多大意义的元素之外,组成的列表中还说明有一个HTML元素,但是最简的源码中却没有这东西。这是因为在HTML的规范中,一直存在“隐式标签”这样的概念,关于隐式标签,大致可以这么解释:

    一部分元素,当满足特定的前提条件时,其开始标签或结束标签可以在源码中省略。在这种情况下,被省略的标签称为“隐式标签”。

    需要注意的是,此处的省略指的是在源码中省略,而在最终成型的DOM树中,这个标签是存在的,因此才称为隐式标签。因此上面最简的源码结构,在生成DOM树后,其真正的结构是这样的:

    <!DOCTYPE html> <html> <head></head> <body></body> </html>

    最后,再总结一下XHTML中的一些规范:

    因为是XML,文档变得严格了很多,也因为是XML,其可读性和规范性提高了不少。但最终,我们始终要在HTML的宽容性和XML的规范性之间找到最佳的平衡点,一味地追求极端始终是一个错误。

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • HTML5 进阶系列:拖放 API 实现拖放排序 - _林鑫

      HTML5 进阶系列:拖放 API 实现拖放排序 - _林鑫

      2017-05-02 11:02

    • HTTP协议学习随笔 - 糖醋酸辣椒

      HTTP协议学习随笔 - 糖醋酸辣椒

      2017-05-01 18:03

    • Doctype的作用?标准(严格)模式,怪异(混杂)模式的区别,它们的意义? - 打怪的码农队长

      Doctype的作用?标准(严格)模式,怪异(混杂)模式的区别,它们的

      2017-04-29 09:03

    • HTML5 进阶系列:indexedDB 数据库 - _林鑫

      HTML5 进阶系列:indexedDB 数据库 - _林鑫

      2017-04-27 14:02

    网友点评