首先非常感谢李刚老师出的这本书《HTML5/CSS3/JavaScript讲义》,今天读了第一章节的内容,趁热打铁,总结一下。

    HTML5的时代已经到来,它对所有的前端开发人员来说是一种福音。HTML5致力于解决跨浏览器问题,可以部分取代JavaScript,HTML5致力于把浏览器变成一个前端执行程序环境,而不是简单地视图工具。

    第一部分,了解HTML和XHTML

    HTML——Hyper Text Markup Language(超文本标记语言),它的发展史比较复杂,从1991年年底推出HTML,当时HTML并没有严格的定义,一路走来HTML2.0,HTML3.2,HTML4.0,HTML4.0.1,XHTML1.0。XHTML可谓是历尽了千锤百炼。

    XHTML——eXtensible Hyper Text Markup Language(扩展的超文本标记语言)。

    HTML4.0.1和XHTML具备了良好的兼容性,而且XHTML是更严格、更纯净的HTML代码。

    我们习惯性的认为HTML是一种结构化的文档,但实际上HTML的语法十分的自由、宽容(主要是各个浏览器纵容的结果)比如如下的代码,HTML标签有头无尾,非常不规范:

    

    <html>
    <head>
    <title>混乱的html文档<title>
    <body>
    <h1>混乱的html文档

    这显然违背了结构化文档的规则,但是用浏览器来浏览这份文档时,依然可以看到浏览效果——这就是html不规范的地方。而XHTML致力于消除这种规范,XHTML要求HTML文档首先必须是一份XML文档。

    通常,计算机里的浏览器可以对付各种不规范的HTML文档,但现在很多浏览器运行在移动电话和手持设备上,它们就没有能力来处理那些糟糕的标记语言。

    第二部分:从XHTML到HTML5

    WHATWG(Web Hypertext Application Technology Workding Group,Web超文本应用技术工作组)制定了一个新的HTML标准,HTML5。

    大量的调查表明:即使在一些正规的网站中,也很少有网站能通过HTML规范验证。仅有6.57%的网站符合HTML规范验证。如果把那些名不见经传的小网站考虑在内,整个互联网几乎都是不符合规范的HTML页面。

    现有的HTML页面大量存在如下4中不符合规范的内容

    1.元素的标签大小写混杂。比如:<p></P>。

    2.元素没有合理结束的情况。比如:只有<p>没有</p>。

    3.元素中的属性没有指定属性值。比如<input type="text" disabled>。

    4.为元素的属性指定属性值时没有使用引号。比如:<input type=text>。

    出于“存在即合理”的考虑,WHATWG组织开始定义一种“妥协式”的规范:HTML5。HTML5成人以上的不规范是符合规范的。HTML5是规范制定者对妥协的实现。

    HTML5的优势:

    从HTML4.0.1、XHTML到HTML5,并不是一种革命性的升级,而是一种规范向习惯的妥协,因此从HTML到HTML5的过度非常的轻松。

    1.解决跨浏览器问题。

    跨浏览器问题绝对是一个永恒的“噩梦”,HTML的出现可能会改变这种局面,目前各种主流浏览器如:IE、Chrome、Firefox、Opera、Safari都表现出对HTML5极大的热情。如果各浏览器都遵循HTML5规范,以后前端程序员开发HTML+CSS+JavaScript页面将会变得更加轻松。

    2.部分替代了原来的JavaScript。

    比如HTML5以前要实现:打开一个页面后立即让某行文本框获得焦点,要通过javascript来实现,而现在只需要加上一个属性(autofocus)即可。

    <input type = text autofocus name = price/>

    3.更明确的语义支持。

    (1)HTML5提供了<header>...</header>;<nav>...</nav>;<article>...</article>;<section>...</section>;<aside>...</aside>;<footer>...</footer>来代替以前只能通过div来实现的文档结构。

    (2)HTML5提供了两个新增的元素<time>2017-4-18</time>;<mark>被标记的语言</mark>提供了更加丰富的语义相比于原来的<em../>(em表示被强调的内容,但是到底是哪一种强调并不清楚)。

    4.增强了WEB应用程序的功能。

    一直以来,HTML被死死地限制着,客户端从服务器下载HTML页面数据,浏览器负责呈现这些HTML页面数据。出于对客户机安全性考虑,以前的HTML在安全性方面做的足够安全。

    于是呢,我们就需要通过JavaScriptlai等其他方式来增加HTML的功能。

    HTML5的语法变化

    1.标签不再区分大小写。

    2.元素可以省略结束标签。

    3.允许省略属性值的属性。

    4.允许属性值不使用引号。(但是对于包含空格等容易引起浏览器混肴的属性值时候,HTML5强烈建议使用引号把这种特殊的属性值引起来)

    总结:HTML5说就是把不符合规范的HTML看做是一种规范,增加了一些新的api,新的实用的功能。