HTML4,XHTML,HTML5之间的纠葛

我来从HTML的历史谈谈他们3者的区别。html

在HTML的早期发展中,W3C成立以前,不少标准的制定都是在浏览器的开发者们互相讨论的状况下完成的,好比HTML 2.0, 3.2直到4.0, 4.01,这些标准大部分都是所谓的retro-spec,即先有实现后有标准。在这种状况下,HTML标准不是很规范,浏览器也对HTML页面中的错误至关宽容。这反过来又致使了HTML做者写出了大量的含有错误的HTML页面。听说,时至今日web上99%的页面都含有HTML错误。web

W3C随后意识到了这个问题,并认为这是互联网的一个基础性问题,应该加以解决。为了规范HTML,W3C结合XML制定了XHTML 1.0标准,这个标准没有增长任何新的tag,只是按照XML的要求来规范HTML,并定义了一个新的MIME type,application/xhtml+xml。W3C的初衷是对这个MIME type浏览器要实行强错误检查,既若是页面有HTML错误,就要显示错误信息。可是因为已有的web页面中已经有了大量的错误,不少开发者拒绝使用新的MIME type。W3C不得已,在XHTML 1.0的标准以后加了一个附录C,容许开发者使用XHTML语法来写页面,同时使用旧的MIME type,application/html,来分发页面。这个旧的MIME type不会触发浏览器的强错误检查。这就是咱们今天看到的状况,不少网站宣称本身遵照XHTML 1.0标准,那只不过是说,他的页面中用了XHTML语法,但并不能保证彻底没有错误。要验证XHTML有没有真正起效,须要查看web服务器使用哪一种MIME type来分发页面的。浏览器

W3C随后在XHTML 1.1中取消了附录C,即便用XHTML 1.1标准的页面必须用新的MIME type来分发。因而这个标准并无不少人采用。这种状况一样发生在还没有完成的XHTML 2.0身上,它要求强错误检查,因而没有人采用。XHTML的故事也告诉咱们,有时候先有标准再来实现,是行不通的。服务器

有了XHTML的教训,WHAT Working Group和W3C在制定下一代HTML标准,也就是HTML5的时候,就将向后兼容做为了一个很重要的原则。HTML5确实引入了许多新的特性,可是它最重要的一个特性是,不会break已有的网页。你能够将任何已有的网页的第一行改为<!DOCTYPE html>,它就成也一个HTML5页面,而且能够照样在浏览器里正常的展现。app

本文内容来自知乎睡神的评论:http://www.zhihu.com/question/19818208网站

相关文章
相关标签/搜索