内容简介:
陶国荣编著的《HTML5实战》是一本系统而全面的HTML 5教程,根据HTML 5标准的最新草案,系统地对HTML 5的所有重要知识点进行了全面的讲解。在写作方式上,本书以一种开创性的方式使理论与实践达到极好的平衡,不仅对理论知识进行了清晰而透彻的阐述,而且根据读者理解这些知识的需要,精心设计了106个完整(每个案例分为功能描述、实现代码、效果展示和代码分析4个部分)的实战案例,旨在帮助读者通过实践的方式迅速掌握这些知识。
《HTML5实战》共11章,内容涵盖了HTML 5的各个方面。第1章通过实现一个简单的HTML 5页面讲解了如何搭建支持HTML 5的浏览器环境、HTML 5页面所具备的特征,以及如何检测浏览器对HTML 5的各种特性的支持情况;第2章介绍了HTML 5中常用的交互元素,包括内容交互元素、菜单交互元素和状态交互元素等几大类;第3章介绍了HTML根元素、文档元素,以及与脚本、节点、分组内容、文本层次语义、嵌入内容、公共属性相关的重要元素;第4章和第5章讲解了HTML 5中的表单和文件的功能特性以及常见的各种操作;第6章和第7章讲解了HTML 5中的音频、视频和绘图相关的知识,重点讲解了各种常见的操作和使用方法;第8章和第9章讲解了HTML 5中的数据存储和离线应用;第10章对Web Sockets、Geolocation、Web Workers、元素的拖放等重要内容进行了全面的讲解。
本书适合所有想系统学习HTML 5的读者阅读。如果按照本书的顺序逐章阅读,同时亲自动手实现本书中的案例,相信一定能达到事半功倍的效果。
海报:
作者简介:
陶国荣 资深Web技术专家,有10余年开发经验,是国内较早专业从事Web开发的一线技术人员和培训讲师。醉心于对JavaScript、jQuery和Aiax等Web开发技术的研究和实践,并长期专注于HTML页面的优化与用户体验的研究,在页面框架搭建、数据流向分析、页面静态优化方面拥有丰富的实践经验。此外,他还是微软技术方面的专家,精通C#、ASP.NEr和SQL Server等技术,出版相关著作多部。
目录:
前言第1章 拥抱HTML5 1.1 一个简单的HTML5页面 1.1.1 搭建支持的浏览器环境 1.1.2 检测浏览器是否支持HTML5标记 1.1.3 使用HTML5结构编写一个简单的Web页面 1.2 HTML5页面的特征 1.2.1 应用全新的HTML5特征结构化元素 1.2.2 使用CSS文件美化HTML5新元素 1.3 本章小结第2章 HTML5中常用的交互元素 2.1 内容交互元素 2.1.1 details元素 2.1.2 summary元素 2.2 菜单交互元素 2.2.1 menu元素 2.2.2 command元素 2.3 状态交互元素 2.3.1 progress元素 2.3.2 meter元素 2.4 本章小结第3章 HTML5中的重要元素 3.1 html根元素 3.2 文档元素 3.3 脚本 3.4 节点 3.4.1 section元素 3.4.2 nav元素 3.4.3 hgroup元素 3.4.4 address元素 3.5 分组内容 3.5.1 ul元素 3.5.2 ol元素 3.5.3 dl元素 3.6 文本层次语义 3.6.1 time元素 3.6.2 mark元素 3.6.3 cite元素 3.7 嵌入内容 3.7.1 img元素 3.7.2 iframe元素 3.7.3 object元素 3.8 公共属性 3.8.1 draggable属性 3.8.2 hidden属性 3.8.3 spellcheck属性 3.8.4 contenteditable属性 3.9 本章小结第4章 HTML5中的表单 4.1 input元素的新增类型 4.1.1 email邮件类型 4.1.2 url地址类型 4.1.3 number数字类型 4.1.4 range数字滑动条 4.1.5 date日期类型 4.1.6 search搜索类型 4.2 input元素新增的公用属性 4.2.1 autofocus属性 4.2.2 pattern属性 4.2.3 placeholder属性 4.2.4 required属性 4.3 新增表单元素 4.3.1 datalist元素 4.3.2 output元素 4.3.3 keygen元素 4.4 表单新增的验证方法和属性 4.4.1 checkValidity显式验证法 4.4.2 使用setCustomValidity方法修改提示信息 4.4.3 表单的novalidate属性 4.5 本章小结第5章 HTML5中的文件 5.1 选择文件 5.1.1 选择单个文件 5.1.2 选择多个文件 5.1.3 使用Blob接口获取文件的类型与大小 5.1.4 通过类型过滤选择的文件 5.1.5 通过accept属性过滤选择文件的类型 5.2 使用FileReader接口读取文件 5.2.1 FileReader接口的方法 5.2.2 使用readAsDataURL方法预览图片 5.2.3 使用readAsText方法读取文本文件 5.2.4 侦听FileReader接口中的事件 5.3 使用DataTransfer对象拖放上传图片文件 5.4 文件读取时的错误与异常 5.4.1 发生错误与异常的条件 5.4.2 错误代码说明 5.5 本章小结第6章 HTML5中的视频和音频 6.1 多媒体元素基本属性 6.1.1 元素格式 6.1.2 width与height属性 6.1.3 controls属性 6.1.4 poster属性 6.1.5 networkState属性 6.1.6 error属性 6.1.7 其他属性 6.2 多媒体元素常用方法 6.2.1 媒体播放时的方法 6.2.2 canPlayType方法 6.3 多媒体元素重要事件 6.3.1 媒体播放事件 6.3.2 timeupdate事件 6.3.3 其他事件 6.4 本章小结第7章 HTML5绘图基础 7.1 画布的基础知识 7.1.1 canvas元素的基本用法 7.1.2 绘制带边框矩形 7.1.3 绘制渐变图形 7.2 在画布中使用路径 7.2.1 moveTo与lineTo的用法 7.2.2 使用arc方法绘制圆形 7.2.3 绘制渐变圆形 7.3 对画布中图形的操作 7.3.1 变换图形原点坐标 7.3.2 组合多个图形 7.3.3 添加图形阴影 7.4 处理画布中的图像 7.4.1 绘制图像 7.4.2 平铺图像 7.4.3 切割图像 7.4.4 处理像素 7.5 画布的其他应用 7.5.1 绘制文字 7.5.2 保存、恢复及输出图形 7.5.3 制作简单的动画 7.6 本章小结第8章 HTML5中的数据存储 8.1 WebStorage存储简介 8.1.1 sessionStorage对象 8.1.2 localStorage对象 8.2 localStorage详解 8.2.1 清空localStorage数据 8.2.2 遍历localStorage数据 8.2.3 使用JSON对象存取数据 8.2.4 管理localStorage数据 8.3 WebSQL数据库基础 8.3.1 打开与创建数据库 8.3.2 执行事务 8.3.3 插入数据 8.3.4 数据管理 8.4 本章小结第9章 HTML5中的离线应用 9.1 离线应用程序 9.1.1 manifest文件简介 9.1.2 配置IIS服务器 9.1.3 离线应用的开发过程 9.2 本地缓存的更新及状态检测 9.2.1 updateready事件 9.2.2 update方法 9.2.3 swapCache方法 9.2.4 更新本地缓存时触发的其他事件 9.3 检测在线状态 9.3.1 onLine属性 9.3.2 online与offline事件 9.3.3 离线数据交互应用开发过程 9.4 本章小结第10章 HTML5中的其他应用型API 10.1 WebSocketsAPI 10.1.1 postMessage方法 10.1.2 使用WebSocket传送数据 10.1.3 使用WebSocket传送JSON对象 10.2 GeolocationAPI 10.2.1 使用getCurrentPosition方法获取当前地理位置 10.2.2 使用Google地图锁定位置 10.3 WebWorkersAPI 10.3.1 Worker对象处理线程 10.3.2 使用线程传递JSON对象 10.3.3 使用线程嵌套交互数据 10.4 本章小结第11章 HTML5中元素的拖放 11.1 拖放基础 11.1.1 使用JavaScript代码实现拖放 11.1.2 在HTML5中实现拖放时触发的事件 11.2 dataTransfer对象应用详解 11.2.1 使用setData与getData方法存入与读取拖放数据 11.2.2 使用setDragImage方法设置拖放图标 11.2.3 使用effectAllowed与dropEffect属性设置拖放效果 11.3 拖放应用实战 11.3.1 购物车的实现 11.3.2 相册的管理 11.4 本章小结实例目录 实例1-1 检测浏览器是否支持HTML5 实例1-2 Hello,World页面的实现 实例1-3 页面分栏实现 实例1-4 样式化页面实现 实例2-1 交互元素<details>的使用 实例2-2 用脚本控制交互元素<details>的使用 实例2-3 交互元素<summary>与<details>的结合使用 实例2-4 交互元素<menu>的使用 实例2-5 交互元素<command>与<menu>的结合使用 实例2-6 交互元素<progress>的使用 实例2-7 交互元素<meter>的使用 实例3-1 元素<html>的使用 实例3-2 元素<head>的使用 实例3-3 元素<script>与<noscript>的使用 实例3-4 元素<ol>的使用 实例3-5 元素<mark>的使用 实例3-6 元素<cite>的使用 实例3-7 公共属性draggable的使用 实例3-8 公共属性hidden的使用 实例3-9 公共属性spellcheck的使用 实例3-10 公共属性contenteditable的使用 实例4-1 email类型的<input>元素的使用 实例4-2 url类型的<input>元素的使用 实例4-3 number类型的<input>元素的使用 实例4-4 range类型的<input>元素实现颜色选择器 实例4-5 分类展示不同形式的选择日期 实例4-6 search类型的<input>元素的使用 实例4-7 <input>元素中autofocus属性的使用 实例4-8 <input>元素中pattern属性的使用 实例4-9 <input>元素中placeholder属性的使用 实例4-10 <input>元素中required属性的使用 实例4-11 <datalist>元素的使用 实例4-12 <output>元素的使用 实例4-13 <keygen>元素的使用 实例4-14 调用表单的checkValidity方法 实例4-15 调用表单的setCustomValidity方法 实例4-16 表单中novalidate属性的使用 实例5-1 选择单个文件上传 实例5-2 选择多个文件上传 实例5-3 获取上传文件的类型与大小 实例5-4 通过类型过滤上传文件 实例5-5 通过accept属性过滤上传文件的类型 实例5-6 使用readAsDataURL方法预览图片 实例5-7 使用readAsText方法读取文本文件 实例5-8 展示文件读取时触发事件的先后顺序 实例5-9 使用DataTransfer对象拖放上传图片文件 实例6-1 使用多媒体元素播放文件 实例6-2 设置<video>元素的大小与样式 实例6-3 设置<video>元素的控制条工具属性 实例6-4 设置<video>元素的poster属性 实例6-5 获取<video>元素networkState属性的返回值 实例6-6 获取<video>元素error属性的返回值 实例6-7 自定义<video>元素控制条工具栏 实例6-8 使用canPlayType方法检测浏览器支持媒体类型 实例6-9 获取多媒体元素在播放事件中的不同状态 实例6-10 通过timeupdate事件动态显示媒体文件播放时间 实例7-1 使用<canvas>元素绘制正方形 实例7-2 使用<canvas>元素绘制带边框的矩形 实例7-3 使用<canvas>元素绘制有渐变色的图形 实例7-4 使用moveTo与lineTo方法绘制多条直线 实例7-5 使用arc方法绘制多个不同样式的圆形 实例7-6 使用<canvas>元素绘制径向渐变的圆形 实例7-7 使用<canvas>元素移动、缩放、旋转图形 实例7-8 使用<canvas>元素设置多图形组合显示的方式 实例7-9 使用<canvas>元素添加绘制图形阴影 实例7-10 使用drawImage方法在画布中绘制图像 实例7-11 使用createPattern方法在画布中平铺图像 实例7-12 使用clip方法在画布中切割图像 实例7-13 使用getImageData与putImageData方法处理图像像素 实例7-14 使用fillText与strokeText方法绘制文字 实例7-15 在画布中保存、恢复及输出图形 实例7-16 在画布中制作简单的动画 实例8-1 使用sessionStorage对象保存与读取临时数据 实例8-2 使用localStorage对象保存与读取登录用户名与密码 实例8-3 清空localStorage对象保存的全部数据 实例8-4 遍历localStorage对象保存的全部数据 实例8-5 使用JSON对象存取数据 实例8-6 管理localStorage数据 实例8-7 使用openDatabase打开与创建数据库 实例8-8 使用transaction方法执行事务 实例8-9 使用executeSql方法插入记录 实例8-10 使用executeSql方法管理数据记录 实例9-1 开发一个简单的离线应用 实例9-2 监测updateready事件触发 实例9-3 使用update方法更新本地缓存 实例9-4 使用swapCache方法更新本地缓存 实例9-5 检测离线应用在加载过程中触发的事件 实例9-6 通过onLine属性检测网络的当前状态 实例9-7 通过online与offline事件检测网络的当前状态 实例9-8 开发一个离线留言数据交互应用 实例10-1 使用postMessage方法实现跨文档传输数据 实例10-2 使用WebSocket对象传送数据 实例10-3 使用WebSocket传送JSON对象 实例10-4 使用getCurrentPosition方法获取出错数据信息 实例10-5 使用getCurrentPosition方法获取地理位置信息 实例10-6 使用Google地图锁定位置 实例10-7 使用Worker对象处理线程 实例10-8 使用线程传递JSON对象 实例10-9 使用线程嵌套交互数据 实例11-1 使用JavaScript代码实现元素拖放 实例11-2 元素在拖放过程中触发的事件 实例11-3 使用setData与getData方法存入与读取拖放数据 实例11-4 使用setDragImage方法设置拖放图标 实例11-5 使用effectAllowed与dropEffect属性设置拖放效果 实例11-6 使用拖放API将商品拖入购物车 实例11-7 使用拖放API将图片拖入回收站