第1章 用语义化的方式实现 1
实例01使用正确的〈doctype〉来简化你的网页 1
实例02采用常见结构 2
实例03使你的HTML5新标签在旧的浏览器里正确渲染 5
实例04新定义的〈input〉标签 11
实例05不使用JavaScript实现表单验证 16
实例06使用新控件提高表单的易用性 24
实例07新的DOM事件 37
实例08在标记上添加丰富的上下文数据 40
实例09使用自定义数据跟踪用户事件 44
实例10使机器人和人类能够像微数据一样访问你的页面 47
第2章 使用样式 53
实例11通过浏览器前缀实现试验期CSS功能 54
实例12使用自定义网络字体设计页面 56
实例13使用Google网络字体来实现简单的@font-face 61
实例14使用CSS3的字体特效美化页面 70
实例15 不改变透明度来让元素显得透明 73
实例16使用media query来实现响应式设计 76
实例17使网页应用响应设备的方向变化 81
实例18使用伪类实现对DOM的完全控制 85
实例19图片聚合和通过图片数据URI内联图片 87
实例20通过简单的方式实现渐变效果 92
实例21拯救边框,让边框变得有趣 98
实例22在同一元素上设置多个背景图片 103
实例23使用CSS3变换从传统空间解放页面元素 106
实例24使用CSS3转换实现变换动画 110
实例25使用变换和转换来实现iOS样式的翻卡效果 113
实例26使用Respond js在IE中模拟media query 117
实例27通过viewport〈meta〉标签来控制移动网页布局 121
第3章 实践多媒体 125
实例28使用HTML5视频直接在应用里嵌入视频 125
实例29为视频文件选择合适的编码/解码器 128
实例30用视频API定制视频播放控制器 130
实例31使用〈canvas〉标签为HTML5视频添加背景 135
实例32在HTML5视频元素上添加字幕 139
实例33美化HTML5视频字幕 142
实例34使用Cuepoint.js在不支持HTML5的浏览器上实现视频字幕功能 146
实例35使用Buzz轻松构建复杂的音频应用 149
实例36使用MediaElement.js简化HTML5媒体 153
第4章 使用Canvas和SVG来做图形 157
实例37使用〈canvas〉标签在HTML5页面上绘图 158
实例38在Canvas元素上使用样式 164
实例39使用图片文件修饰canvas元素 171
实例40使用HTML5〈canvas〉标签创建高清晰度、支持视网膜 屏幕的图形 177
实例41使用Canvas图形加速动画 180
实例42使用SVG实现“原生”图形 187
实例43使用CSS修饰SVG元素 191
实例44使用SVG制作动画 198
实例45直接在HTML中嵌入SVG 202
第5章 用户交互 207
实例46将网页应用里的所有对象变得可拖放 208
实例47使用拖放数据传输对象更新DOM 212
实例48在网页应用中拖入/拖出文件 218
实例49通过Editable Content将页面的每个元素都变得可编辑 224
实例50将网页变为一个WYSIWYG编辑器 227
实例51通过HTML5会话历史控制浏览器的历史按钮 230
第6章 实践客户端数据存储 237
实例52在内联URL中嵌入二进制数据 237
实例53将数据URI转换为Blob并通过XHR2嵌入到表单数据中 242
实例54使用WebStorage API实现用户数据的持久化 244
实例55通过YepNope js和Storage.js模拟LocalStorage 250
实例56使用FileSystem API在本地缓存多媒体资源 253
实例57使用IndexedDB和FullCalendar js构建里程碑日历 262
第7章 实践地理定位 271
实例58使用地理位置API在移动网页应用里显示经纬度 272
实例59使用Google的反向地理编码API反查用户的位置 278
实例60在Google地图上更新用户的当前位置 284
实例61使用Geoloqi服务构建地理围栏 289
实例62使用Geoloqi实时流服务来广播远程用户的移动 296
实例63使用Webshims模拟地理位置API 300
第8章WebWorker API 305
浏览器如何执行JavaScript 305
实例64使用BlobBuilder界面创建内联工作线程 307
实例65在专有工作线程中执行昂贵的数组操作 313
实例66使用定时器将应用的状态传递给工作线程 323
实例67在独立Worker中通过像素操作处理图片数据 336
实例68使用引用脚本创建Twitter的JSONP请求 341
实例69在多个浏览器窗口中同时连接共有Worker 345
第9章 实践HTML5连接 349
实例70使用Kaazing的远程Web Socket服务器为浏览器返回简单的回声消息 350
实例71使用Node.js和ws模块构建WebSocket服务器 358
实例72使用Web Socket、 Pusher API和PHP构建捐赠进度指示器 365
实例73为j WebSocket创建插件 381
实例74通过Server-Sent Events向浏览器推送通知 392
实例75配置Amazon S3支持跨域共享网络字体 402
实例76使用Robodeck控制HTML5幻灯片 411
实例77查看Socket.IO连接确定它是原生的还是模拟的 432
实例78使用node-spdy构建简单的SPDY服务器 432
第10章 使用Node.js实现高级HTML5应用 435
HTML5应用设计的考虑 435
实例79在浏览器中显示“Hello Html5” 436
实例80通过request对象检测用户代理(UA)字符串 444
实例81使用Node.js的response对象向客户端返回为设备定制的数据 445
实例82使用Node.js包管理器添加一个Web应用开发框架作为第三方模块 447
实例83使用Express应用生成器创建基础应用 448
实例84定制模块处理路由 451
实例85配置Express启用视图引擎 452
实例86启用Jade布局使应用视图遵守DRY 454
实例87使用Jade视图部件在视图中创建简单的导航条 456
实例88使用Jade Mixin在视图中填充数据 458
实例89使用Stylus书写富有表现力、动态、容错的CSS 462
实例90使用HTML5样板作为默认初始模板 465
成为一个HTML5高手 471
索引 473