标题：论道HTML5
基本信息
作者：秀野堂主 蒋宇捷 罗睿  
丛书名：图灵原创
出版社：人民邮电出版社 
ISBN：9787115278708
出版日期：2012 年4月 
开本：16开 
页码：299 
版次：1-1
内容简介
《论道html5》先简要介绍了如何用html5 和css3 制作网站，然后全面介绍了api 和canvas 2d，接着介绍了如何在手机浏览器上开发html5 相关的应用、websocket api 相关的三个案例和时下较为流行的node.js环境，最后介绍了瘦服务器战略和云的概念。
《论道html5》主要供业内的前端开发人员使用，也可供大专院校相关师生、行业技能培训学校作为相关教材和参考书。
作者简介
秀野堂主
HTML5视频教程《秀野堂主讲HTML5》的作者，中国传媒大学兼职讲师，专注于移动互联网研究，来自江南的普通老程序员。
蒋宇捷
百度技术经理，西安交通大学硕士。曾任创新工场魔图精灵项目技术总监、腾讯研究院浏览器前端负责人、傲游Web后台主管。
CSDN博客专家，关注Web前后端及移动互联网技术。爱好网球、旅游、足球、滑雪。
罗睿
热衷于电子游戏与创造世界，高中时期游戏作品《新烈火战机》和《TankII》在全国和全省高中组电脑制作比赛中获奖。大学期间
游戏作品《黑白颠倒棋》和《飞行特训》获得武汉市奋进杯程序开发大赛一、二等奖。毕业后曾在新浪、百度等互联网公司担任前端工
程师职位。工作之余发布的游戏作品《HTML5圆桌骑士复刻版》在微软IE9开发大赛中获优胜奖。目前在完美世界担任游戏项目经理职位。
目录
《论道html5》 
第1章 利用html5制作网站 1 
1.1 大多数人不了解html5时代的网页设计 1 
1.2 html5带来的网页结构、设计风格及理念的变化 3 
1.2.1 html 4时代的几个特征 4 
1.2.2 一个典型的html5页面 4 
1.2.3 小结 6 
1.3 html5带来的标签变化 6 
1.3.1 什么是标签 6 
1.3.2 标签的分类 7 
1.3.3 近十几年来的html 9 
1.3.4 web的变化趋势 9 
1.4 html5带来的表单数据内容进化 9 
1.4.1 数据提交格式的变化 10 
1.4.2 数据提交范围的变化 11 
1.4.3 表单数据类型的增加 12 
1.4.4 表单属性和验证方式的进化 13 
1.4.5 文件上传控件和重复模型的应用 14 
1.4.6 小结 14 
1.5 html5与seo 15 
.1.5.1 技术趋势 15 
1.5.2 搜索引擎服务商面临的问题 16 
1.5.3 seo从业人员面临的问题 17 
1.5.4 seo面临的几个社会问题 18 
1.6 html5的开发环境与调试环境 18 
1.6.1 html5编写工具 18 
1.6.2 javascript开发 19 
1.6.3 http监控 19 
1.6.4 调试环境 20 
1.7 案例：html5网站建设 22 
1.7.1 需求的提出 22 
1.7.2 需求分析 22 
1.7.3 系统分析 22 
1.7.4 工程实现 23 
1.7.5 小结 27 
第2章 用css3完善网站 28 
2.1 文字模块 29 
2.1.1 文字阴影：text-shadow 29 
2.1.2 文字溢出：text-overflow 30 
2.1.3 文字换行：word-wrap 30 
2.2 颜色模块 31 
2.2.1 透明度：opacity 31 
2.2.2 hsl 33 
2.2.3 hsla和rgba 33 
2.3 边框模块 34 
2.3.1 边框圆角：border-radius 34 
2.3.2 边框颜色：border-color 36 
2.3.3 边框图像：border-image 37 
2.3.4 盒阴影：box-shadow 40 
2.4 用户界面模块 41 
2.4.1 盒倒影：box-reflect 41 
2.4.2 盒大小：box-sizing 41 
2.5 背景模块 42 
2.5.1 背景渐变 42 
2.5.2 background-origin 45 
2.5.3 background-clip 46 
2.5.4 background-size 47 
2.5.5 多背景 48 
2.5.6 遮罩 49 
2.6 动画模块 51 
2.6.1 transform 51 
2.6.2 transition 53 
2.6.3 animation 55 
2.7 区域模块 57 
2.7.1 故事线 58 
2.7.2 区域样式 60 
2.7.3 内容形状和环绕 60 
2.7.4 小结 62 
2.8 选择器 62 
2.8.1 结构伪类 63 
2.8.2 否定伪类 65 
2.8.3 状态伪类 65 
2.8.4 目标伪类 66 
2.8.5 其他选择器 66 
2.9 其他模块 68 
2.9.1 多栏布局 68 
2.9.2 弹性盒子布局 68 
2.9.3 网络字体 69 
2.9.4 媒介查询 70 
2.9.5 滤镜效果 70 
2.9.6 着色器 70 
2.10 使用css3美化网站 72 
2.10.1 右上角文字 73 
2.10.2 下载盒子 74 
2.10.3 图片格子 74 
2.10.4 中间盒子 74 
2.10.5 左右盒子 75 
2.10.6 居中背景 76 
2.10.7 载入效果 76 
2.10.8 页脚 77 
2.11 小结 77 
第3章 划时代的web api 79 
3.1 传统web模型与web os架构模型 79 
3.2 web api的概要介绍 81 
3.3 drag & drop api 82 
3.3.1 以前的解决方案 82 
3.3.2 drag & drop api的优点 83 
3.3.3 如何检测浏览器是否支持 
drag & drop api 83 
3.3.4 drag & drop api的主要操作 84 
3.3.5 文件拖放上传实例 86 
3.4 history api 87 
3.4.1 以前的解决方案 87 
3.4.2 现在的history api 87 
3.5 communication api 89 
3.5.1 以前解决跨源通信的方案 89 
3.5.2 xmlhttprequest level 2 90 
3.5.3 iframe和sandbox 91 
3.5.4 跨文档消息通信 92 
3.6 notification api 97 
3.6.1 如何检测浏览器是否支持notification api 97 
3.6.2 web的notification的状态 97 
3.6.3 让你的web app带着notification跑 97 
3.7 audio标签和video标签 99 
3.7.1 audio标签 100 
3.7.2 video标签 102 
3.8 canvas api 108 
3.8.1 以前的同类解决方案 109 
3.8.2 canvas的优点 109 
3.8.3 检测浏览器是否支持canvas 109 
3.8.4 canvas主要操作 109 
3.9 websocket api 110 
3.10 web worker api 111 
3.11 web storage api 111 
3.12 microdata和语义网络 111 
3.12.1 microdata的常见属性 112 
3.12.2 microdata的例子 112 
3.12.3 microdata与seo——人类需要有序的信息 113 
3.12.4 语义网络的基本概念 113 
3.12.5 语义测试工具 114 
3.13 通用base64方法 114 
3.13.1 编码 114 
3.13.2 解码 115 
3.13.3 应用 115 
3.14 web database api 117 
3.14.1 web sql api 117 
3.14.2 indexed db api 121 
3.15 webgl 124 
3.16 device api 系列 125 
3.16.1 geolocation api 125 
3.16.2 file api 128 
3.16.3 filewriter api 132 
3.16.4 media capture api 132 
3.16.5 contact api 133 
3.16.6 system information api 134 
3.16.7 calendar api 137 
3.16.8 messaging api 137 
3.17 小结 138 
第4章 canvas 2d 139 
4.1 什么是canvas 139 
4.2 canvas 2d原理 140 
4.2.1 坐标系统说明 141 
4.2.2 属性说明 142 
4.3 绘制 143 
4.3.1 各类线条 143 
4.3.2 矩形 151 
4.3.3 三角形 152 
4.3.4 圆与扇形 153 
4.3.5 图片 155 
4.3.6 文字 158 
4.4 特效 160 
4.4.1 渐变 160 
4.4.2 阴影与透明 162 
4.5 基础操作中比较复杂的部分 162 
4.5.1 保存和恢复 163 
4.5.2 坐标转换 163 
4.5.3 旋转 164 
4.5.4 缩放 164 
4.5.5 变形 164 
4.5.6 组合 166 
4.5.7 裁剪 167 
4.5.8 像素操作 170 
4.6 动画 172 
4.6.1 左右运动 172 
4.6.2 上下运动 173 
4.6.3 圆心旋转运动 174 
4.6.4 抛物线运动 175 
4.6.5 渐变运动 175 
4.7 事件感应 176 
4.8 关于canvas的一些经验 177 
4.8.1 回答两个问题 177 
4.8.2 避开浮点运算 178 
4.8.3 资源载入与双缓冲问题 178 
4.8.4 图片抗锯齿的原理及办法 179 
4.8.5 粒子系统的使用 181 
4.9 web开发复古流 181 
4.10 小结 182 
第5章 html5和移动互联网开发 183 
5.1 移动互联网的现状与需求 183 
5.1.1 市场容量 184 
5.1.2 移动设备的特点 184 
5.1.3 移动设备的现状 185 
5.1.4 开发者生态圈 185 
5.1.5 可供选择的移动互联网开发平台 185 
5.2 html5在移动互联网上的开发示例 187 
5.2.1 一个html5开发者的基本配置 187 
5.2.2 欧朋浏览器h5版介绍 188 
5.2.3 重力传感设备 191 
5.2.4 电子罗盘开发 199 
5.2.5 geolocation与lbs应用开发 203 
5.2.6 网页摄像与网络相册 207 
5.2.7 移动设备中的离线存储 214 
5.3 小结 215 
第6章 websocket开发应用 216 
6.1 websocket的那些事儿 216 
6.1.1 websocket的技术背景 217 
6.1.2 websocket的定义 218 
6.1.3 websocket通信模式解析 219 
6.1.4 websocket检测浏览器支持代码 220 
6.2 websocket api的内容 220 
6.2.1 属性 220 
6.2.2 url 221 
6.2.3 事件 221 
6.3 客户端样例程序 222 
6.4 服务器端样例程序 222 
6.5 ajax、长轮询、comet之间的那些事儿 223 
6.5.1 ajax 223 
6.5.2 长轮询 225 
6.5.3 comet 226 
6.5.4 ajax与websocket的多角度对比 227 
6.6 与websocket相关的几个概念 227 
6.6.1 ssjs 228 
6.6.2 node.js 228 
6.7 开发基于websocket的通信示例 235 
6.7.1 聊天室 235 
6.7.2 服务器监控 239 
6.7.3 联机作图 243 
6.8 免费的websocket资源 247 
6.9 小结 248 
第7章 瘦服务器战略与云 249 
7.1 战略观察与未来10年的思考 249 
7.1.1 web瘦服务器战略 249 
7.1.2 云 253 
7.1.3 计算能的思考 254 
7.2 web storage 255 
7.2.1 web storage的概念 255 
7.2.2 localstorage介绍与示例 255 
7.2.3 sessionstorage的介绍与示例 258 
7.2.4 浏览器端存储的方案和局限性 260 
7.3 离线应用 265 
7.3.1 判断浏览器是否在线 266 
7.3.2 离线应用的属性与方法 266 
7.3.3 manifest文件 267 
7.4 web worker 269 
7.4.1 worker 270 
7.4.2 shared worker 273 
7.4.3 web worker小结 275 
7.5 一个云记事本的案例 276 
7.5.1 客户端逻辑分析 276 
7.5.2 客户端的实现 277 
7.5.3 工程实现的联想 279 
7.6 小结 279 
附录a html5标签、事件属性及其 
相关网站 281 
附录b 审慎对待各种框架 287 
附录c 统一开发常用交流术语 289 
附录d webgl 294 
附录e css3模块列表 299
前言
在这样一个飞速发展的时代，写一本在这个时代中最为耀眼、更新最快的技术（即HTML5）的书，对于我们HTML5研究小组来说，是一件让人非常忐忑的事情，特别是在行业标准尚在草案阶段，还在不断地进行吸收和优化的情况下，我们怀着对HTML5的热情和希望，战战兢兢地写下此书。 
W3C官方说，HTML5标准将于2014年正式发布，但是令人惊奇的是，大量的用户和各大厂商已经迫不及待地投入到HTML5的怀抱中，促进了HTML5的广泛应用。连软件界的巨人微软公司，也被动地对浏览器进行改良和研发，推出了目前对HTML5提供支持但并不太友好的IE9。 
有很多人说HTML5标准有着巨大的魅力和市场前景，这是一场技术革命，并且会在不远的将来改变和影响我们的生活、工作和学习等，也有人说HTML5是业内巨头的标准之争、利益之争。据我们分析，每项行业标准都是业内巨头之争，并不仅仅是HTML5。在我们看来，如果一项标准可以让用户最终获益（降低成本，提高效率，安全有保障），那么这个标准就是好标准，就应该被广泛接受和推广。正因为如此，我们HTML5研究小组才决定：哪怕有风险，也要写出一本关于HTML5的普及和推广型的书，帮助广大读者了解和学习HTML5，探索和思考HTML5。 
如果说Web是计算机应用的未来，那么以HTML5和JavaScript为代表的Web技术则是Web的未来。 
本书的主要目标读者如下： 
网页设计与制作的初学者与从业人员； 
高校计算机专业的学生； 
网络培训学校的学员； 
各类从事桌面应用程序开发的程序员； 
各类有兴趣推动并从事Web应用开发的人。 
本书提供了一些技术案例和方案的构想，对HTML5标准的规划、制定和应用也提出了我们自己的一些思考和探索。读者在阅读这些内容的时候，希望能够注意到作者的良苦用心，并促进读者的思考。 
本书共分7章。 
第1章通过对HTML5新的语义和标签的变化，并通过制作一个小网站，来了解HTML5网站的初步架构。同时，我们也引入了网站建设的制作规范、常规工业流程及我们习惯的调试环境、方法和常用工具等，这些资料对读者在工作中有一定的帮助和指导意义。 
第2章通过引入CSS3的各种特效，完善了一个HTML5网站的全部初级视觉表现。其实，这些效果在很多网站上都有一些教程和介绍，上就有比较全面的应用。 
第3章开始引入HTML5最精彩的API概念，即Web App的概念，将HTML5的应用拓展至各个领域。作者写本章的目的在于承上（Web页面技术部分）启下（Web应用技术部分）地介绍和索引HTML5标准，并将Web API作为目前Web技术的一个分水岭予以全面展示。我们认为Web App是HTML 4时代的终结，也是HTML5时代的开端。HTML5在Drag&Drop（拖曳）、File API、Web Worker（进程级的异步处理）、History API、WebSocket、WebGL、localStorage、Canvas、Geolocation延伸出的LBS（Location Based Service）、Web SQL（已被停用和废弃）等上都有了前所未有的进步。 
第4章全面介绍了Canvas 2D。 
第5章向读者展示了在手机浏览器上开发HTML5相关应用的案例。 
第6章结合WebSocket API讲解了3个案例，并引入了时下较为流行的Node.js环境。 
第7章结合localStorage和Web Worker，介绍了瘦服务器战略和云的概念，此外，还提及一个概念——计算能。 
附录先对2011年6月20日之前新增和废弃的标签、属性和事件进行了整理，接着介绍了如何审慎地对待各种框架，然后介绍了开发中常用的交流术语，最后介绍了WebGL和CSS模块列表。