第1章HTML5基础 1
1.1 HTML5概述 1
1.1.1 HTML历史 1
1.1.2 HTML5诞生 2
1.1.3 HTML5组织 3
1.1.4 HTML5构成 4
1.2 HTML5设计理念 4
1.2.1避免不必要的复杂性 4
1.2.2支持已有的内容 5
1.2.3解决现实的问题 6
1.2.4求真务实 7
1.2.5平稳退化 9
1.2.6最终用户优先 10
1.3 HTML5新特性 11
1.4 HTML5 API 12
1.4.1新增的API 12
1.4.2修改的API 13
1.4.3扩展Document 14
1.4.4扩展HTMLElement 14
1.4.5其他扩展 15
1.4.6弃用的API 15
1.5案例:编写第一个HTML5页面 16
1.5.1搭建测试环境 16
1.5.2检测浏览器是否支持 16
1.5.3使用HTML5编写页面 17
第2章 设计HTML5文档 19
2.1 HTML5语法 19
2.1.1标记变化 19
2.1.2兼容性 20
2.1.3案例:设计HTML5页面 21
2.2 HTML5元素 22
2.2.1结构元素 22
2.2.2功能元素 25
2.2.3表单元素 27
2.2.4废除的元素 28
2.3 HTML5属性 28
2.3.1表单属性 29
2.3.2链接属性 29
2.3.3其他属性 29
2.3.4废除的属性 29
2.4 HTML5全局属性 31
2.4.1 contentEditable属性 31
2.4.2 contextmenu属性 32
2.4.3 data-*属性 32
2.4.4 draggable属性 34
2.4.5 dropzone属性 34
2.4.6 hidden属性 34
2.4.7 spellcheck属性 34
2.4.8 translate属性 35
2.5 HTML5事件 35
2.5.1 window事件 35
2.5.2 form事件 36
2.5.3 mouse事件 36
2.5.4 media事件 37
2.6案例:设计HTML5页面 37
2.6.1使用HTML5结构化元素 37
2.6.2使用CSS美化HTML5文档 40
第3章 构建HTML5结构 42
3.1设计主体结构 42
3.1.1定义文章块 42
3.1.2定义内容块 44
3.1.3定义导航块 47
3.1.4定义侧边栏 49
3.1.5定义主要区域 50
3.2设计语义结构 51
3.2.1定义标题栏 51
3.2.2定义标题组 52
3.2.3定义脚注栏 53
3.2.4定义联系信息段 54
3.2.5定义时间段 55
3.2.6定义发布日期 55
3.3设计文档大纲 56
3.3.1 HTML4文档纲要 57
3.3.2 HTML5文档纲要 58
3.3.3 HTML5隐式分节 59
3.3.4 HTML5特殊分节 61
3.3.5 HTML5兼容样式 62
3.4实战案例 63
3.4.1设计完整的HTML5文档结构 63
3.4.2设计博客结构 65
3.4.3设计博客样式 67
第4章 增强HTML5表单和页面功能 70
4.1 HTML5 input类型 70
4.1.1 email类型 71
4.1.2 url类型 72
4.1.3 number类型 73
4.1.4 range类型 74
4.1.5日期选择器类型 75
4.1.6 search类型 81
4.1.7 tel类型 82
4.1.8 color类型 83
4.2 HTML5 input属性 84
4.2.1 autocomplete属性 84
4.2.2 autofocus属性 86
4.2.3 form属性 87
4.2.4表单重写属性 88
4.2.5 height和width属性 89
4.2.6 list属性 89
4.2.7 min、 max和step属性 90
4.2.8 multiple属性 91
4.2.9 pattern属性 92
4.2.10 placeholder属性 92
4.2.11 required属性 93
4.3新表单控件 94
4.3.1 datalist元素 94
4.3.2 keygen元素 94
4.3.3 output元素 95
4.4新表单属性 96
4.4.1 autocomplete属性 96
4.4.2 novalidate属性 96
4.4.3显式验证 97
4.5新增页面元素 98
4.5.1 figure和figcaption元素 98
4.5.2 details和summary元素 99
4.5.3 mark元素 102
4.5.4 progress元素 103
4.5.5 meter元素 104
4.5.6 dialog元素 105
4.6完善页面元素 107
4.6.1 a元素 107
4.6.2 ol元素 108
4.6.3 dl元素 108
4.6.4 cite元素 109
4.6.5 small元素 110
4.6.6 iframe元素 110
4.6.7 script元素 110
第5章HTML5绘图 113
5.1 HTML5 canvas基础 113
5.1.1在页面中插入canvas元素 113
5.1.2绘制图形的基本方法 114
5.1.3使用canvas 115
5.2绘制图形 117
5.2.1绘制直线 117
5.2.2绘制矩形 119
5.2.3绘制圆形 120
5.2.4绘制多边形 121
5.2.5绘制曲线 123
5.2.6绘制二次方曲线 123
5.2.7绘制三次方曲线 125
5.3设置图形样式 126
5.3.1设置线型 126
5.3.2绘制线性渐变 130
5.3.3绘制径向渐变 131
5.3.4绘制图案 132
5.3.5设置不透明度 133
5.3.6设置阴影 134
5.4操作图形 135
5.4.1保存和恢复canvas状态 135
5.4.2清除绘图 136
5.4.3移动坐标 137
5.4.4旋转坐标 139
5.4.5缩放图形 141
5.4.6变换矩阵 142
5.4.7组合图形 144
5.4.8裁切路径 147
5.5绘制文字 148
5.5.1绘制填充文字 148
5.5.2设置文字属性 149
5.5.3绘制轮廓文字 149
5.5.4测量宽度 150
5.6绘制图像 151
5.6.1导入图像 152
5.6.2变换图像 153
5.6.3裁切图像 155
5.6.4图像平铺 156
5.6.5像素处理 158
5.7 Path2D对象 159
5.7.1 Canvas 2D API新功能 159
5.7.2使用Path2D对象 160
5.8实战案例 164
5.8.1设计canvas动画 164
5.8.2保存绘图 167
第6章 使用SVG 170
6.1 SVG基础 170
6.1.1 SVG发展历史 170
6.1.2 SVG特点 170
6.1.3在HTML中应用SVG 171
6.1.4案例:设计第一个SVG图形 172
6.2使用SVG 173
6.2.1矩形 173
6.2.2圆形 174
6.2.3椭圆 175
6.2.4多边形 176
6.2.5直线 177
6.2.6折线 178
6.2.7路径 179
6.2.8文本 181
6.2.9线框样式 182
6.2.10 SVG滤镜 185
6.2.11模糊效果 186
6.2.12阴影效果 187
6.2.13线性渐变 189
6.2.14放射渐变 190
6.3实战案例 191
6.3.1手绘简笔画 191
6.3.2描边动画 193
6.3.3设计特效文字 196
6.3.4自定义滤镜 199
第7章 使用HTML5多媒体 207
7.1 HTML5多媒体基础 207
7.1.1认识编解码器 207
7.1.2浏览器支持 208
7.1.3使用audio元素 212
7.1.4使用video元素 213
7.1.5设置媒体属性 215
7.1.6使用媒体方法 218
7.1.7使用媒体事件 219
7.2实战案例 221
7.2.1设计音乐播放器 221
7.2.2显示播放进度 222
7.2.3查看视频帧画面 224
7.2.4添加字幕 227
第8章 本地存储 232
8.1 Web Storage 232
8.1.1 Web Storage基础 232
8.1.2浏览器支持 233
8.1.3使用Web Storage 235
8.1.4案例:用户登录信息保存和读取 237
8.1.5案例:Web留言本 238
8.1.6案例:网页计数器 240
8.2 Web SQL 241
8.2.1 Web SQL基础 241
8.2.2使用Web SQL 242
8.2.3案例:创建本地数据库 244
8.2.4案例:批量读写数据 247
8.2.5案例:本地用户登录 248
8.2.6案例:Web Storage和Web SQL比较应用 251
8.3 indexedDB 257
8.3.1 indexedDB基础 257
8.3.2连接数据库 258
8.3.3更新数据库版本 260
8.3.4创建对象仓库 261
8.3.5创建索引 263
8.3.6使用事务 265
8.3.7保存数据 266
8.3.8获取数据 268
8.3.9检索键值 269
8.3.10检索属性值 272
8.3.11案例:留言本 274
8.3.12案例:电子刊物发布 277
第9章 离线应用 287
9.1 HTML5离线应用基础 287
9.1.1认识HTML5离线应用 287
9.1.2浏览器支持 289
9.1.3使用manifest文件 289
9.1.4使用离线缓存 292
9.1.5监听离线存储 295
9.2实战案例 297
9.2.1缓存首页 297
9.2.2离线编辑内容 300
9.2.3离线跟踪 304
第10章 多线程处理 309
10.1 Web Workers基础 309
10.1.1认识Web Workers 309
10.1.2浏览器支持 310
10.1.3创建Web Workers 311
10.1.4 Web Workers通信 312
10.1.5案例:使用Web Workers 313
10.2实战案例 316
10.2.1后台运算 316
10.2.2数值过滤 318
10.2.3并发处理 320
10.2.4线程通信 322
10.2.5 Fibonacci数列运算 324
10.2.6多线程绘图 326
第11章 文件操作 330
11.1访问文件域 330
11.2使用Blob对象 331
11.2.1在文件域中访问Blob对象 331
11.2.2创建Blob对象 333
11.2.3截取Blob对象 335
11.2.4保存Blob对象 336
11.3使用FileReader对象 338
11.3.1读取并显示文件 338
11.3.2监测读取操作 340
11.4使用缓存对象 342
11.4.1使用ArrayBuffer对象 342
11.4.2使用ArrayBufferView对象 342
11.4.3使用DataView对象 344
11.5使用FileSystem 347
11.5.1访问文件系统 347
11.5.2申请配额 348
11.5.3创建文件 352
11.5.4写入文件 354
11.5.5添加数据 355
11.5.6读取文件 357
11.5.7复制文件 358
11.5.8删除文件 360
11.5.9创建目录 361
11.5.10读取目录 364
11.5.11删除目录 366
11.5.12复制目录 367
11.5.13移动和重命名目录 368
11.5.14使用filesystem∶URL 370
11.6实战案例 372
第12章 使用History 376
12.1 History API基础 376
12.1.1 History API处理方式 376
12.1.2浏览器兼容和扩展 377
12.1.3操作历史记录 377
12.2实战案例 379
12.2.1设计无刷新页面导航 379
12.2.2设计主题宣传网站 382
12.2.3设计图片画廊 385
12.2.4设计历史恢复 388
第13章XMLHttpRequest 2 392
13.1 XMLHttpRequest 2基础 392
13.1.1使用XMLHttpRequest对象 392
13.1.2 XMLHttpRequest老版本缺陷 393
13.1.3 XMLHttpRequest 2版本功能 393
13.1.4 HTTP请求时限 393
13.1.5使用FormData对象 393
13.1.6上传文件 394
13.1.7跨域访问 394
13.1.8响应数据 394
13.1.9接收二进制数据 395
13.1.10显示进度信息 395
13.2实战案例 396
13.2.1接收ArrayBuffer对象 396
13.2.2接收Blob对象 400
13.2.3发送字符串 401
13.2.4发送表单数据 402
13.2.5发送文件 403
13.2.6发送Blob对象 404
13.2.7跨域请求 405
13.2.8设计带进度条的文件上传 406
第14章 拖放和通知 410
14.1拖放API 410
14.1.1拖放API基础 410
14.1.2使用DataTransfer对象 413
14.1.3案例:删除项目 416
14.1.4案例:接纳对象 418
14.1.5案例:拖选照片 420
14.1.6案例:扔入垃圾桶 422
14.1.7案例:文件拖拽预览 423
14.2通知API 427
14.2.1通知API基础 427
14.2.2案例:开启桌面通知 429
14.2.3案例:使用脚本关闭通知 431
14.2.4案例:显示多条通知 431
第15章 地理位置 433
15.1位置信息基础 433
15.1.1为什么要学习Geolocation 433
15.1.2位置信息表示方式 433
15.1.3位置信息来源 434
15.1.4 IP定位 434
15.1.5 GPS定位 434
15.1.6 Wi-Fi定位 434
15.1.7手机定位 435
15.1.8自定义定位 435
15.2 Geolocation API基础 435
15.2.1浏览器支持 435
15.2.2获取当前地理位置 436
15.2.3监视位置信息 438
15.2.4停止获取位置信息 438
15.2.5隐私保护 438
15.2.6处理位置信息 438
15.2.7使用position对象 439
15.3实战案例 440
第16章 HTML5其他应用 443
16.1 Page Visibility API 443
16.1.1 Page Visibility基础 443
16.1.2案例:设计视频页面 445
16.1.3案例:设计登录同步 447
16.2 Fullscreen API 448
16.2.1 Fullscreen API基础 449
16.2.2案例:设计页面全屏显示 451
16.2.3案例:设计视频全屏播放 452
16.3鼠标指针锁定API 454
16.3.1鼠标指针锁定API基础 454
16.3.2案例:设计全屏鼠标指针锁定 454
16.4 requestAnimationFrame 458
16.4.1 requestAnimFrame基础 458
16.4.2案例:设计进度条 460
16.4.3案例:设计粒子动画 461
16.4.4案例:设计旋转的小球 463
16.5 Mutation Observer 464
16.5.1 Mutation Observer基础 464
16.5.2案例:观察DOM元素变化 466
16.5.3案例:观察DOM属性变化 467
16.6 JavaScript Promise 468
16.6.1 Promise对象基础 468
16.6.2创建promi se对象 474
16.6.3使用then()方法 476
16.6.4队列化异步操作 478
16.6.5异常处理 479
16.6.6创建序列 480
16.6.7并行处理 483
16.7 Beacon API 485
第17章CSS3基础 487
17.1 CSS3概述 487
17.1.1 CSS历史 487
17.1.2 CSS3模块 487
17.1.3 CSS3特性 489
17.1.4 CSS3状态 491
17.1.5浏览器支持 492
17.2设计CSS页面 494
第18章CSS3选择器 498
18.1选择器概述 498
18.1.1了解CSS3选择器 498
18.1.2 CSS选择器分类 498
18.2兄弟选择器 501
18.3属性选择器 502
18.4伪类选择器 505
18.5实战案例 507
18.5.1使用属性选择器 507
18.5.2使用动态伪类 510
18.5.3使用结构伪类 513
18.5.4使用否定伪类 519
18.5.5使用状态伪类 521
18.5.6使用目标伪类 523
18.5.7设计表单样式 523
18.5.8设计超链接样式 526
18.5.9设计表格样式 528
第19章 文本样式 533
19.1 CSS3文本模块基础 533
19.2实战案例 537
19.2.1定义文本阴影 537
19.2.2设计文本特效 539
19.2.3设计首页特效 545
19.2.4文本溢出 547
19.2.5文本换行 548
19.2.6动态内容 551
19.2.7默认样式 553
19.2.8自定义字体 554
第20章 色彩和渐变样式 557
20.1颜色模式 557
20.1.1 RGBA模式 557
20.1.2 HSL模式 559
20.1.3 HSLA模式 561
20.1.4使用opacity属性 563
20.1.5设置transparent值 565
20.2渐变背景 566
20.2.1 WebKit渐变 566
20.2.2 Gecko渐变 572
20.2.3 IE渐变 578
20.2.4标准渐变 579
20.3实战案例 580
20.3.1设计按钮 580
20.3.2设计纹理 582
20.3.3设计栏目 584
20.3.4渐变应用 585
第21章 背景和边框样式 588
21.1设计边框样式 588
21.1.1多色边框 588
21.1.2边框背景 590
21.2设计圆角 594
21.3设计倒影 598
21.4设计阴影 601
21.5设计背景图像 605
21.5.1定义坐标 605
21.5.2定义裁剪区域 607
21.5.3定义大小 609
21.5.4定义多背景图像 611
21.6实战案例 612
21.6.1设计椭圆图形 612
21.6.2设计图标 613
21.6.3设计边框 615
21.6.4设计窗口 616
第22章CSS3盒模型 621
22.1 CSS3盒模型基础 621
22.1.1定义显示方式 621
22.1.2可控大小 621
22.1.3内容溢出 623
22.1.4定义轮廓 625
22.1.5设置轮廓样式 628
22.2实战案例 631
22.2.1边界的应用 631
22.2.2补白的应用 635
22.2.3边框应用 636
22.2.4设计模板页 639
第23章CSS3新布局模型 642
23.1多列布局 642
23.1.1定义列宽 642
23.1.2定义列数 643
23.1.3定义列间距 644
23.1.4定义列边框 646
23.1.5定义跨列显示 647
23.1.6定义列高度 648
23.2盒布局模型 650
23.2.1定义宽度 650
23.2.2定义顺序 652
23.2.3定义方向 653
23.2.4自定义自适应 654
23.2.5消除空白 656
23.2.6定义对齐方式 659
23.3弹性盒布局 660
23.3.1定义弹性盒 661
23.3.2定义伸缩方向 662
23.3.3定义行数 663
23.3.4定义对齐方式 664
23.3.5定义伸缩项目 667
23.4实战案例 670
23.4.1设计伸缩菜单 670
23.4.2设计伸缩页 671
23.4.3设计可兼容多列模板 673
23.4.4设计HTML5应用模板 677
第24章CSS3变形和动画 681
24.1 CSS3变形 681
24.1.1 2D旋转 681
24.1.2 2D缩放 682
24.1.3 2D移动 684
24.1.4 2D倾斜 684
24.1.5 2D矩阵 685
24.1.6定义变形原点 686
24.1.7认识3D变形 688
24.1.8 3D位移 688
24.1.9 3D缩放 690
24.1.10 3D旋转 691
24.2过渡样式 693
24.2.1定义过渡 693
24.2.2定义过渡时间 694
24.2.3定义延迟 694
24.2.4定义效果 695
24.2.5触发时机 696
24.3关键帧动画 698
24.3.1定义关键帧 698
24.3.2定义动画名称 700
24.3.3定义播放时间 700
24.3.4定义播放方式 700
24.3.5定义播放延迟 701
24.3.6定义播放次数 701
24.3.7定义播放方向 701
24.3.8定义播放状态 701
24.3.9定义播放外状态 701
24.4实战案例 702
24.4.1设计图片特效 703
24.4.2设计变形对象 704
24.4.3设计3D盒子 706
24.4.4设计动态广告 709
24.4.5设计翻转动画 710
24.4.6设计运动动画 712
24.4.7设计折叠面板 713
第25章CSS3媒体查询 715
25.1媒体查询基础 715
25.1.1认识Media Queries 715
25.1.2使用@media规则 716
25.2实战案例 717
25.2.1跟踪浏览器窗口变化 717
25.2.2设计响应式页面 720
25.2.3设计自适应页面 723
25.2.4智能隐藏和显示栏目 727
25.2.5设计自适应手机网页 730