第一部分 1
第1章 HTML5简介 1
1.1 HTML历史与HTML 5 2
1.1.1 HTML发展历史 2
1.1.2 HTML 4.01和XHTML 3
1.1.3 HTML和XHTML的文档类型定义(DTD) 4
1.1.4从XHTML到HTML 5 5
1.2 HTML 5的优势 6
1.2.1解决跨浏览器问题 6
1.2.2分代替了原来的JavaScript 7
1.2.3更明确的语义支持 7
1.2.4增强了Web应用程序的功能 8
1.3 HTML 5的基本结构和语法变化 8
1.3.1 HTML 5基本结构 8
1.3.2 HTML 5的语法变化 9
1.4本章小结 12
第2章 HT ML5的常用元素与属性 13
2.1 HTML 5保留的常用元素 14
2.1.1基本元素 14
2.1.2文本格式化元素 16
2.1.3语义相关元素 18
2.1.4超链接和锚点 20
2.1.5列表相关元素 22
2.1.6图像相关元素 24
2.1.7表格相关元素 25
2.1.8框架相关元素 30
2.2 HTML 5新增的通用属性 31
2.2.1 contentEditable属性 31
2.2.2 designMode属性 32
2.2.3 hidden属性 33
2.2.4 spellcheck属性 33
2.3 HTML 5新增的常用元素 34
2.3.1文档结构元素 34
2.3.2语义相关元素 39
2.3.3两个特殊功能的元素 40
2.4 HTML 5头部和元信息 41
2.5 HTML 5新增的拖放API 43
2.5.1启动拖动 43
2.5.2接受“放” 44
2.5.3 DataTransfer对象 46
2.5.4拖放行为 49
2.5.5改变拖放图标 50
2.6本章小结 51
第3章 HTML5表单相关元素和属性 52
3.1 HTML原有的表单及表单控件 53
3.1.1表单元素 53
3.1.2使用input元素 54
3.1.3使用label定义标签 57
3.1.4使用button定义按钮 58
3.1.5列表框和下拉菜单 58
3.1.6使用textarea定义文本域 60
3.2 HTML 5新增的属性与元素 61
3.2.1 HTML 5为表单控件新增的属性 61
3.2.2功能丰富的input元素 65
3.2.3 HTML 5新增的表单控件 68
3.3 HTML 5增强的文件上传域 69
3.3.1 FileList对象与File对象 69
3.3.2使用FileReader读取文件内容 71
3.4 HTML 5新增的客户端校验 75
3.4.1使用校验属性执行校验 75
3.4.2调用checkValidity方法进行校验 76
3.4.3自定义错误提示 77
3.4.4关闭校验 78
3.5本章小结 79
第4章 HTML5的绘图支持 80
4.1使用canvas元素 81
4.2绘图 82
4.2.1 canvas绘图基础:CanvasRenderingContext2D 82
4.2.2绘制几何图形 85
4.2.3绘制字符串 86
4.2.4设置阴影 87
4.2.5使用路径 88
4.2.6绘制曲线 92
4.2.7绘制位图 94
4.3图形特效处理 95
4.3.1使用坐标变换 96
4.3.2坐标变换与路径结合使用 97
4.3.3使用矩阵变换 99
4.4控制叠加风格 100
4.5控制填充风格 102
4.5.1线性渐变 102
4.5.2圆形渐变 103
4.5.3位图填充 104
4.6位图处理 106
4.6.1位图裁剪 106
4.6.2像素处理 107
4.7输出位图 109
4.8本章小结 111
第5章 HTML 5的多媒体支持 112
5.1使用audio和video元素 113
5.2使用JavaScript脚本控制媒体播放 116
5.2.1 HTMLAudioElement与HTMLVideoElement支持的方法 116
5.2.2 HTMLAudioElement与HTMLVideoElement的属性 118
5.3事件监听 119
5.3.1事件 120
5.3.2监听器 121
5.4本章小结 122
第二部分 123
第6章 级联样式单与CSS选择器 123
6.1样式单概述 124
6.1.1 CSS概述 124
6.1.2 CSS的发展历史 125
6.2 CSS样式单的基本使用 125
6.2.1引入外部样式文件 126
6.2.2导入外部样式单 127
6.2.3使用内部CSS样式 128
6.2.4使用内联样式 129
6.3 CSS选择器 131
6.3.1元素选择器 131
6.3.2属性选择器 132
6.3.3 ID选择器 134
6.3.4 class选择器 135
6.3.5包含选择器 136
6.3.6子选择器 137
6.3.7 CSS 3新增的兄弟选择器 138
6.3.8选择器组合 139
6.4伪元素选择器 140
6.4.1内容相关的属性 142
6.4.2插入图像 143
6.4.3只插入部分元素 144
6.4.4配合quotes属性执行插入 145
6.4.5配合counter-increment属性添加编号 146
6.4.6使用自定义编号 147
6.4.7添加多级编号 148
6.5 CSS 3.0新增的伪类选择器 150
6.5.1结构性伪类选择器 150
6.5.2 Ul元素状态伪类选择器 158
6.5.3浏览器专属的属性 162
6.5.4 :not和:target 164
6.6在脚本中修改显示样式 166
6.6.1随机改变页面的背景色 166
6.6.2动态增加立体效果 167
6.7本章小结 168
第7章 字体与文本相关属性 169
7.1字体相关属性 170
7.1.1添加阴影 173
7.1.2添加多个阴影 174
7.1.3使用font-size-adjust属性微调字体大小 175
7.2 CSS 3支持的颜色表示方法 176
7.3文本相关属性 178
7.3.1文本自动换行:word-break 180
7.3.2长单词和URL地址换行 181
7.4 CSS 3新增的服务器字体 182
7.4.1使用服务器字体 183
7.4.2定义粗体、斜体字 184
7.4.3优先使用客户端字体 185
7.5本章小结 186
第8章 背景、边框和补丁相关属性 187
8.1背景相关属性 188
8.1.1背景图片固定 190
8.1.2 CSS 3新增的背景相关属性 191
8.1.3 CSS 3新增的多背景图片 195
8.2边框相关属性 196
8.2.1 CSS 3提供的渐变边框 199
8.2.2 CSS 3提供的圆角边框 200
8.2.3 CSS 3提供的图片边框 202
8.3补丁相关属性 204
8.3.1内补丁相关属性 204
8.3.2外补丁相关属性 205
8.4本章小结 207
第9章 大小、定位、轮廓相关属性 208
9.1大小相关属性 209
9.1.1 CSS 3新增的box-sizing属性 210
9.1.2 CSS 3新增的resize属性 212
9.2定位相关属性 213
9.3轮廓相关属性 215
9.4本章小结 217
第10章 盒模型与布局相关属性 218
10.1布局相关属性 219
10.1.1通过float属性实现多栏布局 221
10.1.2使用clear属性实现换行 222
10.1.3使用clip属性控制裁剪 223
10.1.4控制组件的滚动条 224
10.2盒模型和display属性 225
10.2.1两种最基本的盒模型 225
10.2.2 none值 227
10.2.3 inline-block盒模型 228
10.2.4 inline-table盒模型 230
10.2.5表格相关的盒模型 231
10.2.6 list-item盒模型 232
10.2.7 run-in盒模型 233
10.3对盒添加阴影 235
10.3.1使用box-shadow属性 235
10.3.2对表格及单元格添加阴影 236
10.4 CSS 3的多栏布局 237
10.4.1 CSS 3新增的分栏功能 237
10.4.2使用盒模型实现多栏布局 240
10.5本章小结 245
第11章 表格、列表相关属性及media query 246
11.1表格相关属性 247
11.2列表相关属性 250
11.3控制光标的属性 253
11.4 media query功能 254
11.4.1 media query语法 254
11.4.2针对浏览器宽度调整布局 256
11.5本章小结 259
第12章 变形与动画相关属性 260
12.1 CSS 3提供的变形支持 261
12.1.1 4种基本变形 262
12.1.2同时应用多种变形 263
12.1.3指定变形中心点 265
12.1.4使用矩阵变换 266
12.2 CSS 3提供的Transition动画 268
12.2.1多个属性同时渐变 269
12.2.2指定动画速度 271
12.3 CSS 3提供的Animation动画 272
12.3.1同时改变多个属性的动画 274
12.3.2鱼眼效果 275
12.4本章小结 277
第三部分 278
第13章 JavaScript语法详解 278
13.1 JavaScript简介 279
13.1.1运行JavaScript 280
13.1.2导入JavaScript文件 280
13.2数据类型和变量 280
13.2.1定义变量的方式 281
13.2.2类型转换 282
13.2.3变量 283
13.3基本数据类型 286
13.3.1数值类型 286
13.3.2字符串类型 291
13.3.3布尔类型 294
13.3.4 undefined和null 295
13.3.5正则表达式 296
13.4复合类型 298
13.4.1对象 298
13.4.2数组 299
13.4.3函数 300
13.5运算符 301
13.5.1赋值运算符 302
13.5.2算术运算符 302
13.5.3位运算符 304
13.5.4加强的赋值运算符 305
13.5.5比较运算符 306
13.5.6逻辑运算符 307
13.5.7三目运算符 308
13.5.8逗号运算符 309
13.5.9 void运算符 310
13.5.10 typeof和instanceof运算符 310
13.6语句 311
13.6.1语句块 312
13.6.2空语句 312
13.6.3异常抛出语句 312
13.6.4异常捕捉语句 314
13.6.5 with语句 315
13.7流程控制 315
13.7.1分支 316
13.7.2 while循环 318
13.7.3 do while循环 319
13.7.4 for循环 319
13.7.5 for in循环 320
13.7.6 break和continue 321
13.8函数 323
13.8.1定义函数的3种方式 324
13.8.2递归函数 326
13.8.3局部变量和局部函数 327
13.8.4函数、方法、对象和类 329
13.8.5函数的实例属性和类属性 332
13.8.6调用函数的3种方式 334
13.8.7函数的独立性 336
13.9函数的参数处理 337
13.9.1基本类型和复合类型的参数传递 337
13.9.2空参数 339
13.9.3参数类型 340
13.10使用对象 342
13.10.1面向对象的概念 342
13.10.2对象和关联数组 343
13.10.3继承和prototype 344
13.11创建对象 347
13.11.1使用new关键字调用构造器创建对象 348
13.11.2使用Object直接创建对象 348
13.11.3使用JSON语法创建对象 350
13.12本章小结 353
第14章 DOM编程详解 354
14.1 DOM模型概述 355
14.2 DOM模型和HTML文档 356
14.2.1 HTML元素之间的继承关系 356
14.2.2 HTML元素之间常见的包含关系 357
14.3访问HTML元素 358
14.3.1根据ID访问HTML元素 358
14.3.2利用节点关系访问HTML元素 359
14.3.3访问表单控件 361
14.3.4访问列表框、下拉菜单的选项 363
14.3.5访问表格子元素 364
14.4修改HTML元素 365
14.5增加HTML元素 367
14.5.1创建或复制节点 367
14.5.2添加节点 369
14.5.3为列表框、下拉菜单添加选项 369
14.5.4动态添加表格内容 371
14.6删除HTML元素 372
14.6.1删除节点 373
14.6.2删除列表框、下拉菜单的选项 374
14.6.3删除表格的行或单元格 375
14.7传统的DHTML模型 376
14.8使用window对象 378
14.8.1访问历史 381
14.8.2访问页面URL 381
14.8.3客户机屏幕信息 382
14.8.4弹出新窗口 383
14.8.5确认对话框和输入对话框 383
14.8.6使用定时器 384
14.9 navigator和地理位置 386
14.9.1 HTML 5新增的geolocation属性 387
14.9.2获取地理位置 388
14.9.3在Google地图上定位 389
14.10使用document对象 391
14.10.1动态页面 392
14.10.2读写Cookie 393
14.11 HTML 5新增的浏览器分析 394
14.11.1分析时间性能 394
14.11.2分析导航行为 396
14.12本章小结 397
第15章 事件处理机制 398
15.1基本事件模型 399
15.1.1绑定HTML元素属性 399
15.1.2绑定DOM对象属性 401
15.1.3事件处理函数和关键字this 403
15.1.4使用返回值改变默认行为 405
15.1.5在代码中触发事件 406
15.2 Internet Explorer的事件模型 407
15.2.1使用script for绑定 408
15.2.2使用attachEvent方法执行绑定 408
15.2.3访问事件对象 410
15.2.4事件冒泡 414
15.2.5重定向事件 416
15.2.6取消事件默认行为 418
15.2.7捕获鼠标事件 419
15.3 DOM的事件模型 421
15.3.1绑定事件处理器 422
15.3.2访问事件对象 423
15.3.3事件传播 426
15.3.4转发事件 431
15.3.5取消事件的默认行为 432
15.4本章小结 433
第16章 本地存储与离线应用 435
16.1 Web Storage 436
16.1.1 Storage接口 437
16.1.2使用Storage存储、读取数据 438
16.1.3基于Web Storage的客户端留言板 439
16.1.4存储结构化数据 441
16.2离线应用 444
16.2.1离线应用与浏览器缓存的区别 444
16.2.2构建离线应用 444
16.2.3判断在线状态 446
16.2.4 applicationCache对象 447
16.2.5离线应用的事件与监听 449
16.3本章小结 451
第17章 使用Worker创建多线程 452
17.1使用Worker创建多线程 453
17.2与Worker线程进行数据交换 455
17.2.1与Worker线程交换数据 456
17.2.2 Worker线程中可用的API 458
17.3 Worker线程嵌套 458
17.3.1嵌套Worker线程 458
17.3.2子线程之间的数据交换 461
17.4本章小结 462
第18章 客户端通信 463
18.1跨文档消息传递 464
18.1.1 postMessage与onmessage 464
18.1.2跨文档消息传递示例 465
18.1.3发送复杂消息 467
18.2使用WebSocket与服务器通信 470
18.2.1 WebSocket接口 470
18.2.2使用WebSocket进行通信 472
18.2.3基于WebSocket的多人实时聊天 475
18.3本章小结 479
第四部分 480
第19章 HTML5的疯狂俄罗斯方块 480
19.1俄罗斯方块简介 481
19.2开发游戏界面 482
19.2.1开发界面布局 482
19.2.2开发游戏界面组件 483
19.3俄罗斯方块的数据模型 485
19.3.1定义数据模型 485
19.3.2初始化游戏状态数据 486
19.4实现游戏逻辑 490
19.4.1处理方块掉落 490
19.4.2处理方块左移 494
19.4.3处理方块右移 496
19.4.4处理方块旋转 497
19.4.5初始化游戏状态 499
19.5本章小结 500