HTML5与CSS3权威指南(第2版·上册)
上QQ阅读APP看书,第一时间看更新

前言

为何写作本书

如果要盘点2010年IT届的十大热门技术,云计算、移动开发、物联网等无疑会在其中,HTML 5肯定也是少不了的。2010年,随着HTML 5的迅猛发展,各大浏览器开发公司如Google、微软、苹果、Mozilla和Opera的浏览器开发业务都变得异常繁忙。在整个2010年度,无论是Mozilla的Firefox、Google的Chrome、苹果的Safari,还是微软的Internet Explorer,以及Opera都处于不断地推陈出新的状态当中。

2010年3月,在微软的MIX2010大会上,微软的工程师在介绍Internet Explorer 9浏览器的同时,从前端技术的角度把互联网的发展分为了三个阶段:

第一阶段:Web 1.0的以内容为主的网络,前端主流技术是HTML和CSS;

第二阶段:Web 2.0的Ajax应用,热门技术是JavaScript/DOM/异步数据请求;

第三阶段:即将迎来的HTML 5时代,亮点是富图形和富媒体内容(Graphically-Rich and Media-Rich)。

前端技术将进入一个崭新的时代,至少已经开启了这扇门。

在这种局势下,学习HTML 5无疑成为Web开发者的一个重要任务,谁先学会HTML 5,谁就掌握了迈向未来Web平台的一把钥匙。因此,我希望能够借助此书帮助国内的Web开发者更好地学习HTML 5以及与之相伴随的CSS 3技术,使他们能够早日运用这些技术开发出一个具有现代水平的、在未来的Web平台上能够流畅运行的Web网站或Web应用程序。

第2版与第1版的区别

自2011年上半年本书第1版出版以来,一直受到广大读者的欢迎,笔者在这里首先感谢广大读者的支持。自2011年之后,HTML 5与CSS 3标准处于不断发展中,各主流浏览器也以最快的速度对HTML 5中各种最新公布的API提供了支持,其中包括各种新增元素、IndexedDB API、FileSystem API、Server-Sent Events API、扩展的XMLHttpRequest API等。因此,本书第2版以第1版的内容为基础,添加2011年到2012年之间HTML 5中新增的各种元素及API,同时更新各主流浏览器CSS 3的最新支持情况,以使读者能够学习到截至2012年HTML 5与CSS 3标准中的各种知识,了解各种最新的浏览器对HTML 5与CSS 3标准的最新支持情况,能够早日用这些新的知识打造一个HTML 5时代的功能强大的Web网站或Web应用程序。

具体来说,第2版在第1版的基础上,做出如下主要修改:

  • “第2章HTML 5与HTML 4的区别”中新增部分元素属性。
  • “第3章HTML 5的结构”中扩充“3.3.1大纲”一节中的内容。
  • “第4章表单及其他新增和改良元素”中新增大量表单元素与页面元素,移除“4.4文件API”一节与“4.5 拖放API”一节。
  • 新增“第5章HTML编辑API”一章(原“第5章绘制图形”修改为第6章,原“第6章多媒体播放”修改为“第15章多媒体相关API”中“15.1 多媒体播放”一节)。
  • 新增“第7章HistoryAPI”一章(原“第7章本地存储”章修改为“第8章本地存储”,原“第8章离线应用程序”修改为“第9章离线应用程序”)。
  • “第8章本地存储”中新增“8.1.4 利用storage事件实时监视Web Storage中的数据”小节,新增“8.3 indexedDB数据库”一节。
  • 新增“第10章文件API”一章。
  • 原“第9章通信API”修改为“第11章通信API”,“11.1 跨文档消息传输”中新增“11.1.3 通道通信”小节,“11.2 Web Sockets通信”中新增“11.2.5 发送与接收原始二进制数据”、“11.2.6 实现Web Sockets API的开发框架”、“11.2.7 WebSocket 协议”与“11.2.8 Web Sockets API的适用场景”等小节,新增“11.3 Server-Sent Events API”一节。
  • 新增“第12章扩展的XMLHttpRequest API”。
  • 原“第10章使用Web Workers处理线程”修改为“第13章使用Web Workers处理线程”,新增“13.5 适用场合”一节和“13.6 SharedWorker”一节。
  • 原“第11章获取地理位置信息”修改为“第14章获取地理位置信息”。
  • 新增“第15章多媒体相关API”一章。
  • 新增“第16章与页面显示相关的API”一章。
  • 新增“第17章拖放API与通知API”(“17.1 拖放API”一节中内容为原“第4章表单及其他新增和改良元素”一章中“4.5 拖放API”一节内容)。
  • 原“第12章CSS 3概述”修改为“第18章CSS 3概述”。
  • “第19章选择器”中“19.4 UI元素状态伪类选择器”一节中新增“19.4.6 E:invalid伪类选择器与E:valid伪类选择器”小节、“19.4.7 E:required伪类选择器与E:optional伪类选择器”小节与“19.4.8 E:in-range伪类选择器与E:out-of-range伪类选择器”小节。
  • “第22章盒相关样式”与“第23章背景与边框相关样式”的样式代码及其说明中移除部分浏览器供应商前缀。
  • 重新编写“第29章综合实例”一章中两个代码示例,“29.2 实例2:使用HTML 5+CSS 3来构建Web应用程序”中添加了使用indexedDB API将数据书写到indexedDB数据库中的代码示例部分。

本书面向的读者

本书主要适合如下人群阅读:

  • 具有一定基础的Web前端开发工程师。
  • 具有一定美术功底的Web前端设计师和UI设计师。
  • Web项目的项目管理人员。
  • 开设了Web开发等相关专业的高等院校师生和相关培训机构的学员及教师。

如何阅读本书

相较于第1版,第2版有了很大的变化,篇幅也大量增加,于是我们将第2版分成上下两册。

上册对HTML 5中新增的语法与标记方法、新增元素、新增API以及这些元素与API到目前为止受到了哪些浏览器的支持等进行了详细的介绍。在对它们进行介绍的同时将其与HTML 4中的各种元素与功能进行了对比,以帮助读者更好地理解为什么需要使用HTML 5、使用HTML 5有什么好处、HTML 5中究竟增加了哪些目前HTML 4不具备而在第3代Web平台上将会起到重要作用的功能与API,以及这些功能与API的详细使用方法。

下册详细介绍了CSS 3中各种新增样式与属性,其中主要包括CSS 3中的各种选择器、文字与字体、背景与边框、各种盒模型、CSS 3中的布局方式、CSS 3中的变形与动画、CSS 3中与媒体类型相关的一些样式与属性等。在介绍的同时也详细讲述了这些样式与属性目前为止受到了哪些浏览器的支持,以及针对各种浏览器应该怎样在样式代码中进行各种属性的正确书写。最后,详细讲解了两个实例,第一个实例展示了如何在一个用HTML 5语言编写而成的页面中综合运用HTML 5中新增的各种结构元素,如何对这些结构元素综合使用CSS 3样式;第二个实例展示了如何使用HTML 5中新增的表单元素,以及操作本地数据库的功能来实现一个具有现代风格的Web应用程序,如何在这个利用HTML 5语言及其功能编写而成的Web应用程序中综合使用CSS 3样式来完成页面的布局以及视觉效果的美化工作。

上下两册一共351个示例页面,每个页面都经过笔者上机实践,确保运行结果正确无误。每个页面的详细代码及其使用到的脚本文件、各种资源文件都可在华章公司的官方网站(www.hzbook.com)本书的相应页面上下载,因为是由HTML 5编写而成的网页,所以可直接在各种浏览器中打开该文件并查看运行结果(少量页面需要首先建立网站,然后通过访问网站中该页面的方式来进行查看,少量页面使用服务器端PHP脚本语言,可在Apache服务器中运行)。同时,对于HTML 5中的各种元素和各种API,以及CSS 3中的各种属性和样式受到了哪些浏览器的支持在书中都进行了详细介绍,读者可以针对不同的页面选择正确的浏览器来查看其正确的运行结果。

致谢

在本书的写作过程中,策划编辑杨福川先生和姜影女士给予了很大的帮助和支持,并提出了很多中肯的建议,在此表示感谢。同时,还要感谢机械工业出版社的所有编审人员为本书的出版所付出的辛勤劳动。本书的成功出版是大家共同努力的结果,谢谢你们。

另外,在本书的写作过程当中,由于时间及水平上的原因,有可能存在一些对HTML 5及CSS 3上认识不全面或疏漏的地方,敬请读者批评更正,作者的联系QQ为240824399,联系邮箱为240824399@qq.com,谨以最真诚的心希望能与读者共同交流,共同成长。

陆凌牛