内容简介
第1章 HTML 5简介
1.1 HTML历史与HTML 5
1.1.1 HTML发展历史
1.1.2 HTML 4.01和XHTML
1.1.3 HTML和XHTML的文档类型定义(DTD)
1.1.4 从XHTML到HTML 5
1.2 HTML 5的优势
1.2.1 解决跨浏览器问题
1.2.2 部分代替了原来的JavaScript
1.2.3 更明确的语义支持
1.2.4 增强了Web应用程序的功能
1.3 HTML 5的基本结构和语法变化
1.3.1 HTML 5的基本结构
1.3.2 标签不再区分大小写
1.3.3 元素可以省略结束标签
1.3.4 支持boolean值的属性
1.3.5 允许属性值不使用引号
1.4 本章小结
第2章 HTML 5的常用元素与属性
2.1 HTML 5保留的常用元素
2.1.1 基本元素
2.1.2 文本格式相关元素
2.1.3 语义相关元素
2.1.4 使用a元素添加超链接和锚点
2.1.5 列表相关元素
2.1.6 使用img元素添加图片
2.1.7 表格相关元素
2.2 HTML 5增强的iframe元素
2.2.1 HTML 5新增的srcdoc属性
2.2.2 HTML 5新增的seamless属性
2.2.3 HTML 5新增的sandbox属性
2.3 HTML 5保留的通用属性
2.3.1 id、style、class属性
2.3.2 dir属性
2.3.3 title属性
2.3.4 lang属性
2.3.5 accesskey属性
2.3.6 tabindex属性
2.4 HTML 5新增的通用属性
2.4.1 contentEditable属性
2.4.2 designMode属性
2.4.3 hidden属性
2.4.4 spellcheck属性
2.4.5 contextmenu属性
2.5 HTML 5新增的结构元素
2.5.1 article与section元素
2.5.2 header与footer元素
2.5.3 nav与aside元素
2.5.4 main元素
2.5.5 figure与figcaption元素
2.6 HTML 5新增的语义元素
2.6.1 mark元素
2.6.2 time元素
2.6.3 details与summary元素
2.6.4 ruby、rtc、rb、rt和rp元素
2.6.5 bdi元素
2.6.6 wbr元素
2.6.7 menu和menuitem元素
2.7 HTML 5头部和元信息
2.7.1 link元素
2.7.2 base元素
2.7.3 meta元素
2.8 HTML 5新增的拖放API
2.8.1 启动拖动
2.8.2 接受“放”
2.8.3 DataTransfer对象
2.8.4 拖放行为
2.8.5 改变拖放图标
2.9 本章小结
第3章 HTML 5表单相关的元素和属性
3.1 HTML原有的表单及表单控件
3.1.1 form元素
3.1.2 input元素
3.1.3 使用label定义标签
3.1.4 使用button定义按钮
3.1.5 select与option元素
3.1.6 HTML 5增强的textarea
3.1.7 fieldset与legend元素
3.2 HTML 5新增的表单属性
3.2.1 form属性
3.2.2 formaction属性
3.2.3 formxxx属性
3.2.4 autofocus属性
3.2.5 placeholder属性
3.2.6 list属性
3.2.7 autocomplete属性
3.2.8 label的control属性
3.2.9 表单元素的labels属性
3.2.10 文本框的selectionDirection属性
3.2.11 复选框的indeterminate属性
3.3 HTML 5新增的表单元素
3.3.1 功能丰富的input元素
3.3.2 output元素
3.3.3 meter元素
3.3.4 progress元素
3.3.5 keygen元素
3.4 HTML 5新增的客户端校验
3.4.1 使用校验属性执行校验
3.4.2 调用checkValidity方法进行校验
3.4.3 自定义错误提示
3.4.4 关闭校验
3.5 本章小结
第4章 HTML 5的绘图支持
4.1 使用canvas元素
4.2 绘图
4.2.1 canvas绘图基础:CanvasRenderingContext2D
4.2.2 绘制几何图形
4.2.3 点线模式
4.2.4 绘制字符串
4.2.5 设置阴影
4.2.6 使用路径
4.2.7 绘制曲线
4.2.8 绘制位图
4.3 坐标变换
4.3.1 使用坐标变换
4.3.2 坐标变换与路径结合使用
4.3.3 使用矩阵变换
4.4 控制叠加风格
4.5 控制填充风格
4.5.1 线性渐变
4.5.2 径向渐变
4.5.3 位图填充
4.6 位图处理
4.6.1 位图裁剪
4.6.2 像素处理
4.7 输出位图
4.8 动画制作
4.8.1 基于定时器的动画
4.8.2 基于requestAnimationFrame的动画
4.9 本章小结
第5章 HTML 5的多媒体支持
5.1 使用audio和video元素
5.2 使用JavaScript脚本控制媒体播放
5.2.1 HTMLAudioElement与HTMLVideoElement支持的方法
5.2.2 HTMLAudioElement与HTMLVideoElement的属性
5.3 事件监听
5.3.1 事件
5.3.2 监听器
5.4 track元素
5.4.1 使用track元素添加字幕
5.4.2 WebVTT文件简介
5.4.3 字幕内容的标记
5.5 本章小结
第6章 级联样式单与CSS选择器
6.1 样式单概述
6.1.1 CSS概述
6.1.2 CSS的发展历史
6.2 CSS样式单的基本使用
6.2.1 引入外部样式文件
6.2.2 导入外部样式单
6.2.3 使用内部CSS样式
6.2.4 使用行内样式
6.3 CSS选择器
6.3.1 元素选择器
6.3.2 属性选择器
6.3.3 ID选择器
6.3.4 class选择器
6.3.5 包含选择器
6.3.6 子选择器
6.3.7 CSS 3新增的兄弟选择器
6.3.8 选择器组合
6.4 伪元素选择器
6.4.1 内容相关的属性
6.4.2 插入图像
6.4.3 只插入部分元素
6.4.4 配合quotes属性执行插入
6.4.5 配合counter-increment属性添加编号
6.4.6 使用自定义编号
6.4.7 添加多级编号
6.5 CSS 3新增的伪类选择器
6.5.1 结构性伪类选择器
6.5.2 UI元素状态伪类选择器
6.5.3 :target伪类选择器
6.5.4 :not伪类选择器
6.6 在脚本中修改显示样式
6.6.1 随机改变页面的背景色
6.6.2 动态增加立体效果
6.7 本章小结
第7章 字体与文本相关属性
7.1 字体相关属性
7.1.1 使用text-shadow添加阴影
7.1.2 添加多个阴影
7.1.3 使用font-size-adjust属性微调字体大小
7.2 CSS 3支持的颜色表示方法
7.3 文本相关属性
7.3.1 使用white-space控制空白的处理行为
7.3.2 文本自动换行:word-break
7.3.3 用word-wrap控制长单词或URL地址换行
7.4 CSS 3新增的服务器字体
7.4.1 使用服务器字体
7.4.2 定义粗体、斜体字
7.4.3 优先使用客户端字体
7.5 本章小结
第8章 背景、边框和边距相关属性
8.1 盒模型简介
8.2 背景相关属性
8.2.1 背景图片固定
8.2.2 CSS 3新增的background-clip属性
8.2.3 CSS 3新增的background-origin属性
8.2.4 CSS 3新增的background-size属性
8.2.5 CSS 3为background-repeat新增的space和round
8.2.6 CSS 3新增的多背景图片
8.3 使用渐变背景
8.3.1 使用linear-gradient设置线性渐变
8.3.2 使用repeating-linear-gradient设置循环线性渐变
8.3.3 使用radial-gradient设置径向渐变
8.3.4 使用repeating-radial-gradient设置循环径向渐变
8.4 边框相关属性
8.4.1 CSS 3提供的渐变边框
8.4.2 CSS 3提供的圆角边框
8.4.3 CSS 3提供的图片边框
8.5 使用opacity控制透明度
8.6 padding和margin相关属性
8.6.1 内填充相关属性
8.6.2 外边距相关属性
8.7 本章小结
第9章 大小、定位、轮廓相关属性
9.1 width、height相关属性
9.1.1 CSS 3新增的box-sizing属性
9.1.2 CSS 3新增的resize属性
9.1.3 CSS 3新增的calc函数
9.2 定位相关属性
9.3 轮廓相关属性
9.4 用户界面和滤镜属性
9.4.1 appearance属性
9.4.2 使用filter属性应用滤镜
9.5 本章小结
第10章 盒模型与布局相关属性
10.1 盒模型和display属性
10.1.1 两种最基本的盒类型
10.1.2 none值和visibility属性
10.1.3 inline-block类型的盒模型
10.1.4 inline-table类型的盒模型
10.1.5 使用table类型的盒模型实现表格
10.1.6 list-item类型的盒模型
10.1.7 run-in类型的盒模型
10.2 对盒添加阴影
10.2.1 使用box-shadow属性
10.2.2 对表格及单元格添加阴影
10.3 布局相关属性
10.3.1 通过float属性实现多栏布局
10.3.2 使用clear属性实现换行
10.3.3 使用overflow设置滚动条
10.3.4 使用overflow-style控制滚动方式
10.3.5 使用clip属性控制裁剪
10.4 CSS 3新增的多栏布局
10.4.1 使用column-width指定栏宽度
10.4.2 使用column-gap和column-rule控制分栏间隔
10.4.3 使用column-span设置跨栏
10.5 使用弹性盒布局
10.5.1 使用flex类型的盒模型
10.5.2 通过flex-direction指定盒内元素的排列方向
10.5.3 使用flex-wrap控制换行
10.5.4 使用order控制元素显示顺序
10.5.5 使用flex属性控制子元素的缩放
10.5.6 使用align-items和align-self控制对齐方式
10.5.7 使用justify-content控制元素分布
10.5.8 使用align-content控制行的分布方式
10.6 本章小结
第11章 表格、列表相关属性及media query
11.1 表格相关属性
11.1.1 使用border-collapse、border-spacing控制单元格边框
11.1.2 使用caption-side控制表格标题的位置
11.1.3 使用table-layout控制表格布局
11.2 列表相关属性
11.2.1 使用list-style属性控制列表项
11.2.2 使用list-style属性控制普通元素
11.3 控制光标的属性
11.4 media query和响应式布局
11.4.1 media query语法
11.4.2 针对浏览器宽度响应式布局
11.4.3 响应手机浏览器
11.5 本章小结
第12章 变形与动画相关属性
12.1 CSS 3提供的变形支持
12.1.1 4种基本变形
12.1.2 同时应用多种变形
12.1.3 指定变换中心点
12.1.4 使用矩阵变换
12.2 CSS 3新增的3D变换
12.2.1 perspective属性
12.2.2 transform-style属性
12.2.3 backface-visibility属性
12.3 CSS 3提供的Transition动画
12.3.1 多个属性同时渐变
12.3.2 指定动画速度
12.4 CSS 3提供的Animation动画
12.4.1 同时改变多个属性的动画
12.4.2 鱼眼效果
12.5 本章小结
第13章 JavaScript语法详解
13.1 JavaScript简介
13.1.1 运行JavaScript
13.1.2 导入JavaScript文件
13.1.3 使用script元素的defer推迟脚本执行
13.1.4 使用script元素的async异步执行脚本
13.1.5 noscript元素
13.2 数据类型和变量
13.2.1 定义变量的方式
13.2.2 类型转换
13.2.3 变量作用域
13.2.4 变量提升
13.2.5 新增的let变量
13.2.6 使用const定义常量
13.3 基本数据类型
13.3.1 数值类型
13.3.2 字符串类型
13.3.3 布尔类型
13.3.4 undefined和null
13.3.5 正则表达式
13.4 复合类型
13.4.1 对象
13.4.2 数组
13.4.3 函数
13.5 运算符
13.5.1 赋值运算符
13.5.2 算术运算符
13.5.3 位运算符
13.5.4 加强的赋值运算符
13.5.5 比较运算符
13.5.6 逻辑运算符
13.5.7 三目运算符
13.5.8 逗号运算符
13.5.9 void运算符
13.5.10 typeof和instanceof运算符
13.6 语句
13.6.1 语句块
13.6.2 空语句
13.6.3 异常抛出语句
13.6.4 异常捕捉语句
13.6.5 with语句
13.7 流程控制
13.7.1 分支
13.7.2 while循环
13.7.3 do while循环
13.7.4 for循环
13.7.5 for in循环
13.7.6 break和continue
13.8 函数
13.8.1 定义函数的3种方式
13.8.2 递归函数
13.8.3 局部变量和局部函数
13.8.4 函数、方法、对象、变量和类
13.8.5 函数的实例属性和类属性
13.8.6 调用函数的3种方式
13.8.7 函数的独立性
13.8.8 函数提升
13.8.9 箭头函数
13.9 函数的参数处理
13.9.1 基本类型和复合类型的参数传递
13.9.2 空参数
13.9.3 参数类型
13.10 面向对象
13.10.1 面向对象的概念
13.10.2 对象和关联数组
13.10.3 继承和prototype
13.10.4 构造器实现伪继承
13.10.5 使用apply或call实现伪继承
13.11 创建对象
13.11.1 使用new关键字调用构造器创建对象
13.11.2 使用Object直接创建对象
13.11.3 使用JSON语法创建对象
13.12 本章小结
第14章 DOM编程详解
14.1 DOM模型概述
14.2 DOM模型和HTML文档
14.2.1 HTML元素之间的继承关系
14.2.2 HTML元素之间常见的包含关系
14.3 访问HTML元素
14.3.1 根据ID访问HTML元素
14.3.2 根据CSS选择器访问HTML元素
14.3.3 利用节点关系访问HTML元素
14.3.4 访问表单控件
14.3.5 访问列表框、下拉菜单的选项
14.3.6 访问表格子元素
14.4 修改HTML元素
14.5 增加HTML元素
14.5.1 创建或复制节点
14.5.2 添加节点
14.5.3 为列表框、下拉菜单添加选项
14.5.4 动态添加表格内容
14.6 删除HTML元素
14.6.1 删除节点
14.6.2 删除列表框、下拉菜单的选项
14.6.3 删除表格的行或单元格
14.7 传统的DHTML模型
14.8 使用window对象
14.8.1 访问页面URL
14.8.2 客户机屏幕信息
14.8.3 弹出新窗口
14.8.4 确认对话框和输入对话框
14.8.5 使用定时器
14.8.6 桌面通知
14.9 navigator和地理定位
14.9.1 HTML 5新增的geolocation属性
14.9.2 获取地理位置
14.9.3 在高德地图上定位
14.9.4 获取电池信息
14.10 HTML 5增强的History API
14.11 使用document对象
14.11.1 动态页面
14.11.2 读写Cookie
14.12 HTML 5新增的浏览器分析
14.12.1 分析时间性能
14.12.2 分析导航行为
14.13 本章小结
第15章 事件处理机制
15.1 事件模型的基本概念
15.2 绑定事件处理函数
15.2.1 绑定HTML元素属性
15.2.2 绑定JavaScript对象属性
15.2.3 addEventListener与attachEvent
15.3 事件处理函数的执行环境
15.3.1 事件处理函数中this关键字
15.3.2 访问事件对象
15.3.3 使用返回值取消默认行为
15.3.4 调用顺序
15.3.5 在代码中触发事件
15.3.6 事件传播
15.3.7 取消事件的默认行为
15.3.8 转发事件
15.4 事件类型
15.4.1 事件类型概述
15.4.2 文档事件
15.4.3 鼠标滚轮事件
15.4.4 键盘事件
15.4.5 触屏事件和移动设备事件
15.5 本章小结
第16章 本地存储与离线应用
16.1 Web Storage
16.1.1 Storage接口
16.1.2 使用Storage存储、读取数据
16.1.3 基于Web Storage的记事本
16.1.4 存储结构化数据
16.1.5 监听存储事件
16.2 Indexed数据库API
16.2.1 使用IDBFactory打开数据库
16.2.2 使用IDBDatabase创建对象存储和索引
16.2.3 使用IDBTransaction(事务)
16.2.4 使用IDBObjectStore执行CRUD操作
16.2.5 使用IDBObjectStore根据主键检索数据
16.2.6 使用IDBIndex根据索引检索数据
16.2.7 使用复合索引
16.3 离线应用
16.3.1 离线应用与浏览器缓存的区别
16.3.2 构建离线应用
16.3.3 判断在线状态
16.3.4 applicationCache对象
16.3.5 离线应用的事件与监听
16.4 本章小结
第17章 文件支持与二进制数据
17.1 HTML 5增强的文件上传域
17.1.1 FileList对象与File对象
17.1.2 使用FileReader读取文件内容
17.2 ArrayBuffer与TypedArray
17.2.1 TypedArray类
17.2.2 DataView类
17.3 Blob类
17.3.1 使用Blob对象
17.3.2 存储Blob对象
17.4 本章小结
第18章 Web Worker多线程API
18.1 使用Worker创建多线程
18.2 与Worker线程进行数据交换
18.2.1 与Worker线程交换数据
18.2.2 Worker线程中可用的API
18.3 Worker线程嵌套
18.3.1 嵌套Worker线程
18.3.2 子线程之间的数据交换
18.4 使用SharedWorker创建共享线程
18.4.1 SharedWorker的用法
18.4.2 共享线程实例
18.5 Promise
18.5.1 Promise基本用法
18.5.2 链式调用then方法
18.5.3 Promise链
18.5.4 catch的用法
18.5.5 all和race的用法
18.6 本章小结
第19章 客户端通信
19.1 跨文档消息传递
19.1.1 postMessage与onmessage
19.1.2 跨文档消息传递示例
19.1.3 发送复杂消息
19.1.4 使用MessageChannel通信
19.2 使用WebSocket与服务器通信
19.2.1 WebSocket接口
19.2.2 使用WebSocket进行通信
19.2.3 基于WebSocket的多人实时聊天
19.2.4 发送二进制数据
19.3 使用Server-Sent Events API
19.3.1 使用EventSource获取数据
19.3.2 EventSource的生命周期
19.4 使用Beacon
19.5 本章小结
第20章 HTML 5的疯狂俄罗斯方块
20.1 俄罗斯方块简介
20.2 开发游戏界面
20.2.1 开发界面布局
20.2.2 开发游戏界面组件
20.3 俄罗斯方块的数据模型
20.3.1 定义数据模型
20.3.2 初始化游戏状态数据
20.4 实现游戏逻辑
20.4.1 处理方块掉落
20.4.2 处理方块左移
20.4.3 处理方块右移
20.4.4 处理方块旋转
20.4.5 初始化游戏状态
20.5 本章小结