首先非常感谢李刚老师出的这本书《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,新的实用的功能。
转载于:https://blog.51cto.com/wuxiaozhu/1914183