第1章 HTML5 1
1.1 HTML5 1
1.1.1 HTML5的发展历程 1
1.1.2 浏览器支持 2
1.1.3 兼容性考量 2
1.1.4 HTML5新特性 3
1.2 Web 3
1.2.1 Web的诞生 3
1.2.2 Web的特点 4
1.2.3 Web的工作原理 5
1.2.4 URL 5
1.3 浏览器 6
1.3.1 浏览器功能 6
1.3.2 浏览器构成 6
1.3.3 浏览器工作主流程 7
1.3.4 主流浏览器 9
1.4 HTML 10
1.4.1 HTML文档基本结构 11
1.4.2 HTML元素 12
1.4.3 HTML属性 16
1.4.4 HTML注释 17
1.5 CSS 19
1.5.1 CSS引用方法 19
1.5.2 CSS语法 21
1.5.3 盒模型 22
1.5.4 CSS定位 25
1.5.5 CSS3 31
1.6 JavaScript 31
1.6.1 JavaScript的历史 31
1.6.2 JavaScript的特点 32
1.6.3 JavaScript引用方法 32
1.6.4 JavaScript语法 34
1.6.5 JavaScript DOM 42
1.7 代码编辑器 47
1.7.1 Notepad+++ 47
1.7.2 Sublime Text 48
1.7.3 Adobe Dreamweaver 49
1.8 使用浏览器调试 49
1.8.1 HTML元素 51
1.8.2 CSS样式 51
1.8.3 JavaScript 51
1.8.4 网络 54
1.8.5 屏幕展示效果 56
1.9 Web服务器环境 57
1.1 0习题 58
第2章 表单 59
2.1 表单形式 59
2.2 传统输入控件 61
2.3 新的输入控件 64
2.4 新表单元素 71
2.5 新表单属性 75
2.6 习题 80
第3章 语义化标签 81
3.1 HTML5之前的语义化标签 81
3.2 语义化标签的作用 83
3.3 HTML5新的语义化标签 83
3.3.1 语义化块级元素 83
3.3.2 <details>和<summary> 89
3.3.3 <figure>和<figcaption> 90
3.3.4 <mark> 91
3.4 习题 92
第4章 音频和视频 93
4.1 音频 93
4.1.1 < audio>标签 93
4.1.2 音频格式兼容 94
4.1.3 < audio>标签属性 96
4.1.4 < audio>标签方法及应用 96
4.2 视频 102
4.2.1 <video>标签 102
4.2.2 视频格式兼容 103
4.2.3 < video>标签长宽设置 104
4.2.4 < video>标签属性 106
4.2.5 < video>标签方法及应用 108
4.2.6 视频字幕 111
4.3 习题 115
第5章 地理定位 116
5.1 浏览器如何获取地理信息 116
5.2 获取访客经纬度信息 117
5.3 错误处理 119
5.4 地理定位选项 122
5.5 地理定位追踪 123
5.6 习题 124
第6章 拖放 125
6.1 拖动(Drag) 125
6.2 放下(Drop) 130
6.3 习题 138
第7章 Canvas画布 140
7.1 Canvas标签使用 140
7.2 Canvas坐标系统 141
7.3 线、路径与形状 142
7.3.1 绘制线段 142
7.3.2 绘制路径 144
7.3.3 绘制形状 147
7.3.4 绘制曲线 150
7.4 绘制文本 153
7.5 图像 155
7.5.1 绘制图像 155
7.5.2 图像缩放与裁剪 156
7.5.3 像素处理 159
7.6 阴影 162
7.7 填充 164
7.7.1 填充图案 165
7.7.2 填充渐变 166
7.8 组合图形 171
7.8.1 透明度 171
7.8.2 合成操作 174
7.8.3 裁剪 176
7.9 坐标变换 179
7.9.1 平移 179
7.9.2 旋转 180
7.9.3 缩放 183
7.9.4 变形 185
7.10 画布当前状态的保存与恢复 189
7.11 画布的保存 192
7.12 习题 195
第8章 Web Worker工作线程 199
8.1 如果没有Web Worker 199
8.2 Web Worker的创建和使用 202
8.3 错误处理 208
8.4 终止线程 209
8.5 共享线程 210
8.6 习题 214
第9章 数据存储 215
9.1 Web Storage 216
9.1.1 添加和读取数据 216
9.1.2 删除数据 222
9.1.3 查找所有数据 225
9.1.4 响应存储变化 226
9.1.5 数据保存格式 229
9.1.6 对象的保存 231
9.1.7 Web Storage与Cookie比较 234
9.2 本地数据库 236
9.2.1 IndexedDB 236
9.2.2 创建并连接数据库 240
9.2.3 添加数据 242
9.2.4 逐个查询所有数据 244
9.2.5 删除单条数据 245
9.2.6 查询单条数据 246
9.3 习题 249
第10章 文件 250
10.1 通过input标签上传文件 250
10.2 读取文件基本信息 252
10.3 自定义input标签样式 253
10.4 多文件选取 256
10.5 读取文件内容 258
10.5.1 读取文本内容 258
10.5.2 读取图片内容 262
10.6 习题 263
第11章 通信 264
11.1 HTTP协议 264
11.1.1 协议特性 264
11.1.2 通信过程 265
11.1.3 HTTP报文结构 265
11.1.4 浏览器查看HTTP报文 267
11.1.5 HTTPS 268
11.2 发送表单信息 268
11.2.1 表单的提交 268
11.2.2 POST与GET比较 270
11.2.3 Post/Redirect/Get设计模式 271
11.3 AJAX 272
11.3.1 XML 272
11.3.2 XMLHttpRequest对象 274
11.3.3 AJAX轮询 279
11.4 服务器发送事件 283
11.5 WebSocket 288
11.5.1 全双工通信 288
11.5.2 通信过程 289
11.6 Fetch 292
11.6.1 发起fetch请求 292
11.6.2 自定义请求参数 295
11.6.3 发送数据 297
11.7 习题 299
第12章 Service Worker服务线程 300
12.1 Service Worker 301
12.2 Service Worker的前景 301
12.3 Service Worker的生命周期 302
12.4 本章实例代码 303
12.5 Register注册 306
12.6 Install安装 308
12.7 Activate激活 310
12.8 Fetch 313
12.9 缓存策略 317
12.9.1 缓存优先、其次网络 318
12.9.2 网络优先、其次缓存 318
12.9.3 仅用缓存 319
12.9.4 仅用网络 320
12.9.5 缓存与网络竞争 320
12.9.6 缓存然后网络 321
12.10 Promise对象简介 322
12.10.1 回调函数与Promise 322
12.10.2 Promise的状态 324
12.10.3 Promise的使用 325
12.11 Cache 332
12.11.1 Caches与Cache 332
12.11.2 创建Cache 333
12.11.3 在Cache内添加 333
12.11.4 在Cache内删除 334
12.11.5 在Cache内匹配 334
12.11.6 获取所有已创建Cache命名 334
12.11.7 删除一个Cache 334
12.1 2习题 335
第13章 HTML5实例 336
13.1 网格系统 337
13.2 绘制贪吃蛇和果实 338
13.2.1 绘制果实 338
13.2.2 绘制贪吃蛇 341
13.3 游戏的动态过程 343
13.3.1 贪吃蛇移动 344
13.3.2 贪吃蛇转向 347
13.3.3 贪吃蛇吃果实 349
13.3.4 贪吃蛇吃自己游戏结束 351
13.4 游戏音效 353
13.5 游戏分数记录 354
13.5.1 记录分数 355
13.5.2 显示分数 359
13.5.3 动态化实现排行榜 361
13.5.4 完善游戏页面 366
13.6 习题 372
参考文献 374