出版时间:2012-5 出版社:人民邮电出版社 作者:秀野堂主,蒋宇捷,罗 睿 页数:300
Tag标签:无
前言
在这样一个飞速发展的时代,写一本在这个时代中最为耀眼、更新最快的技术(即HTML5)的书,对于我们HTML5研究小组来说,是一件让人非常忐忑的事情,特别是在行业标准尚在草案阶段,还在不断地进行吸收和优化的情况下,我们怀着对HTML5的热情和希望,战战兢兢地写下此书。 W3C官方说,HTML5标准将于2014年正式发布,但是令人惊奇的是,大量的用户和各大厂商已经迫不及待地投入到HTML5的怀抱中,促进了HTML5的广泛应用。连软件界的巨人微软公司,也被动地对浏览器进行改良和研发,推出了目前对HTML5提供支持但并不太友好的IE9。 有很多人说HTML5标准有着巨大的魅力和市场前景,这是一场技术革命,并且会在不远的将来改变和影响我们的生活、工作和学习等,也有人说HTML5是业内巨头的标准之争、利益之争。据我们分析,每项行业标准都是业内巨头之争,并不仅仅是HTML5。在我们看来,如果一项标准可以让用户最终获益(降低成本,提高效率,安全有保障),那么这个标准就是好标准,就应该被广泛接受和推广。正因为如此,我们HTML5研究小组才决定:哪怕有风险,也要写出一本关于HTML5的普及和推广型的书,帮助广大读者了解和学习HTML5,探索和思考HTML5。 如果说Web是计算机应用的未来,那么以HTML5和JavaScript为代表的Web技术则是Web的未来。 本书的主要目标读者如下: 网页设计与制作的初学者与从业人员; 高校计算机专业的学生; 网络培训学校的学员; 各类从事桌面应用程序开发的程序员; 各类有兴趣推动并从事Web应用开发的人。 本书提供了一些技术案例和方案的构想,对HTML5标准的规划、制定和应用也提出了我们自己的一些思考和探索。读者在阅读这些内容的时候,希望能够注意到作者的良苦用心,并促进读者的思考。 本书共分7章。 第1章通过对HTML5新的语义和标签的变化,并通过制作一个小网站,来了解HTML5网站的初步架构。同时,我们也引入了网站建设的制作规范、常规工业流程及我们习惯的调试环境、方法和常用工具等,这些资料对读者在工作中有一定的帮助和指导意义。 第2章通过引入CSS3的各种特效,完善了一个HTML5网站的全部初级视觉表现。其实,这些效果在很多网站上都有一些教程和介绍,如www.xiuyetang.com(秀野堂主的个人网站)上就有比较全面的应用。 第3章开始引入HTML5最精彩的API概念,即Web App的概念,将HTML5的应用拓展至各个领域。作者写本章的目的在于承上(Web页面技术部分)启下(Web应用技术部分)地介绍和索引HTML5标准,并将Web API作为目前Web技术的一个分水岭予以全面展示。我们认为Web App是HTML 4时代的终结,也是HTML5时代的开端。HTML5在Drag&Drop(拖曳)、File API、Web Worker(进程级的异步处理)、History API、WebSocket、WebGL、localStorage、Canvas、Geolocation延伸出的LBS(Location Based Service)、Web SQL(已被停用和废弃)等上都有了前所未有的进步。 第4章全面介绍了Canvas 2D。 第5章向读者展示了在手机浏览器上开发HTML5相关应用的案例。 第6章结合WebSocket API讲解了3个案例,并引入了时下较为流行的Node.js环境。 第7章结合localStorage和Web Worker,介绍了瘦服务器战略和云的概念,此外,还提及一个概念——计算能。 附录先对2011年6月20日之前新增和废弃的标签、属性和事件进行了整理,接着介绍了如何审慎地对待各种框架,然后介绍了开发中常用的交流术语,最后介绍了WebGL和CSS模块列表。 此外,书中所有源代码均可从本书的配套网站(http://html5book.xiuyetang.com)上下载。 我们忍不住要在书中写下我们对各种标准、概念的思考。HTML5的各项标准早已放在那里,这本书的目的难道就是为了让大家把标准再看一遍吗?带着这些思考,我们决定不再探讨标准的官方翻译和解释,而是研究一些在应用与实际工作中遇到的问题,并将对这些应用与技术的体会、心得和思考用一线工作者习惯的话语写出来。我们深知自己的能力有限,但又绝不愿意再简单地重复一次标准,在讲究节能减排的今天,浪费笔墨也是可耻的,此处省去八百万字…… 我们认为一定要写下这样的话,以示谦虚:由于时间仓促,水平有限,错漏之处在所难免,若有不当之处,欢迎指正。 我们的能力是有限的,但是知识的海洋却是无限的。可以断言,在你见到这本书的时候,又有很多新的概念和技术诞生了。不要紧,只要有一颗不断追求进步和超越的心,我们就可以跟上时代的步伐,领跑自己的人生。 这是一个追求超越的时代,让我们一起行动起来! 2011年8月5日初稿 2012年1月29日修正
内容概要
本书先简要介绍了如何用HTML5 和CSS3 制作网站,然后全面介绍了API 和Canvas
2D,接着介绍了如何在手机浏览器上开发HTML5 相关的应用、WebSocket API
相关的三个案例和时下较为流行的Node.js环境,最后介绍了瘦服务器战略和云的概念。
本书主要供业内的前端开发人员使用,也可供大专院校相关师生、行业技能培训学校作为相关教材和参考书。
作者简介
秀野堂主
HTML5视频教程《秀野堂主讲HTML5》的作者,中国传媒大学兼职讲师,专注于移动互联网研究,来自江南的普通老程序员。
蒋宇捷
百度技术经理,西安交通大学硕士。曾任创新工场魔图精灵项目技术总监、腾讯研究院浏览器前端负责人、傲游Web后台主管。CSDN博客专家,关注Web前后端及移动互联网技术。爱好网球、旅游、足球、滑雪。
罗睿
热衷于电子游戏与创造世界,高中时期游戏作品《新烈火战机》和《TankII》在全国和全省高中组电脑制作比赛中获奖。大学期间游戏作品《黑白颠倒棋》和《飞行特训》获得武汉市奋进杯程序开发大赛一、二等奖。毕业后曾在新浪、百度等互联网公司担任前端工程师职位。工作之余发布的游戏作品《HTML5圆桌骑士复刻版》在微软IE9开发大赛中获优胜奖。目前在完美世界担任游戏项目经理职位。
书籍目录
第1章 利用HTML5制作网站 1
1.1 大多数人不了解HTML5时代的网页设计 1
1.2 HTML5带来的网页结构、设计风格及理念的变化 3
1.2.1 HTML 4时代的几个特征 4
1.2.2 一个典型的HTML5页面 4
1.2.3 小结 6
1.3 HTML5带来的标签变化 6
1.3.1 什么是标签 6
1.3.2 标签的分类 7
1.3.3 近十几年来的HTML 9
1.3.4 Web的变化趋势 9
1.4 HTML5带来的表单数据内容进化 9
1.4.1 数据提交格式的变化 10
1.4.2 数据提交范围的变化 11
1.4.3 表单数据类型的增加 12
1.4.4 表单属性和验证方式的进化 13
1.4.5 文件上传控件和重复模型的应用 14
1.4.6 小结 14
1.5 HTML5与SEO 15
1.5.1 技术趋势 15
1.5.2 搜索引擎服务商面临的问题 16
1.5.3 SEO从业人员面临的问题 17
1.5.4 SEO面临的几个社会问题 18
1.6 HTML5的开发环境与调试环境 18
1.6.1 HTML5编写工具 18
1.6.2 JavaScript开发 19
1.6.3 HTTP监控 19
1.6.4 调试环境 20
1.7 案例:HTML5网站建设 22
1.7.1 需求的提出 22
1.7.2 需求分析 22
1.7.3 系统分析 22
1.7.4 工程实现 23
1.7.5 小结 27
第2章 用CSS3完善网站 28
2.1 文字模块 29
2.1.1 文字阴影:text-shadow 29
2.1.2 文字溢出:text-overflow 30
2.1.3 文字换行:word-wrap 30
2.2 颜色模块 31
2.2.1 透明度:opacity 31
2.2.2 HSL 33
2.2.3 HSLA和RGBA 33
2.3 边框模块 34
2.3.1 边框圆角:border-radius 34
2.3.2 边框颜色:border-color 36
2.3.3 边框图像:border-image 37
2.3.4 盒阴影:box-shadow 40
2.4 用户界面模块 41
2.4.1 盒倒影:box-reflect 41
2.4.2 盒大小:box-sizing 41
2.5 背景模块 42
2.5.1 背景渐变 42
2.5.2 background-origin 45
2.5.3 background-clip 46
2.5.4 background-size 47
2.5.5 多背景 48
2.5.6 遮罩 49
2.6 动画模块 51
2.6.1 transform 51
2.6.2 transition 53
2.6.3 animation 55
2.7 区域模块 57
2.7.1 故事线 58
2.7.2 区域样式 60
2.7.3 内容形状和环绕 60
2.7.4 小结 62
2.8 选择器 62
2.8.1 结构伪类 63
2.8.2 否定伪类 65
2.8.3 状态伪类 65
2.8.4 目标伪类 66
2.8.5 其他选择器 66
2.9 其他模块 68
2.9.1 多栏布局 68
2.9.2 弹性盒子布局 68
2.9.3 网络字体 69
2.9.4 媒介查询 70
2.9.5 滤镜效果 70
2.9.6 着色器 70
2.10 使用CSS3美化网站 72
2.10.1 右上角文字 73
2.10.2 下载盒子 74
2.10.3 图片格子 74
2.10.4 中间盒子 74
2.10.5 左右盒子 75
2.10.6 居中背景 76
2.10.7 载入效果 76
2.10.8 页脚 77
2.11 小结 77
第3章 划时代的Web API 79
3.1 传统Web模型与Web OS架构模型 79
3.2 Web API的概要介绍 81
3.3 Drag & Drop API 82
3.3.1 以前的解决方案 82
3.3.2 Drag & Drop API的优点 83
3.3.3 如何检测浏览器是否支持
Drag & Drop API 83
3.3.4 Drag & Drop API的主要操作
84
3.3.5 文件拖放上传实例 86
3.4 History API 87
3.4.1 以前的解决方案 87
3.4.2 现在的History API 87
3.5 Communication API 89
3.5.1 以前解决跨源通信的方案 89
3.5.2 XMLHttpRequest Level 2 90
3.5.3 iframe和sandbox 91
3.5.4 跨文档消息通信 92
3.6 Notification API 97
3.6.1 如何检测浏览器是否支持Notification API
97
3.6.2 Web的Notification的状态 97
3.6.3 让你的Web App带着Notification跑
97
3.7 audio标签和video标签 99
3.7.1 audio标签 100
3.7.2 video标签 102
3.8 Canvas API 108
3.8.1 以前的同类解决方案 109
3.8.2 Canvas的优点 109
3.8.3 检测浏览器是否支持Canvas 109
3.8.4 Canvas主要操作 109
3.9 WebSocket API 110
3.10 Web Worker API 111
3.11 Web Storage API 111
3.12 MicroData和语义网络 111
3.12.1 MicroData的常见属性 112
3.12.2 MicroData的例子 112
3.12.3 MicroData与SEO——人类需要有序的信息
113
3.12.4 语义网络的基本概念 113
3.12.5 语义测试工具 114
3.13 通用Base64方法 114
3.13.1 编码 114
3.13.2 解码 115
3.13.3 应用 115
3.14 Web Database API 117
3.14.1 Web SQL API 117
3.14.2 Indexed DB API 121
3.15 WebGL 124
3.16 Device API 系列 125
3.16.1 Geolocation API 125
3.16.2 File API 128
3.16.3 FileWriter API 132
3.16.4 Media Capture API 132
3.16.5 Contact API 133
3.16.6 System Information API
134
3.16.7 Calendar API 137
3.16.8 Messaging API 137
3.17 小结 138
第4章 Canvas 2D 139
4.1 什么是Canvas 139
4.2 Canvas 2D原理 140
4.2.1 坐标系统说明 141
4.2.2 属性说明 142
4.3 绘制 143
4.3.1 各类线条 143
4.3.2 矩形 151
4.3.3 三角形 152
4.3.4 圆与扇形 153
4.3.5 图片 155
4.3.6 文字 158
4.4 特效 160
4.4.1 渐变 160
4.4.2 阴影与透明 162
4.5 基础操作中比较复杂的部分 162
4.5.1 保存和恢复 163
4.5.2 坐标转换 163
4.5.3 旋转 164
4.5.4 缩放 164
4.5.5 变形 164
4.5.6 组合 166
4.5.7 裁剪 167
4.5.8 像素操作 170
4.6 动画 172
4.6.1 左右运动 172
4.6.2 上下运动 173
4.6.3 圆心旋转运动 174
4.6.4 抛物线运动 175
4.6.5 渐变运动 175
4.7 事件感应 176
4.8 关于Canvas的一些经验 177
4.8.1 回答两个问题 177
4.8.2 避开浮点运算 178
4.8.3 资源载入与双缓冲问题 178
4.8.4 图片抗锯齿的原理及办法 179
4.8.5 粒子系统的使用 181
4.9 Web开发复古流 181
4.10 小结 182
第5章 HTML5和移动互联网开发 183
5.1 移动互联网的现状与需求 183
5.1.1 市场容量 184
5.1.2 移动设备的特点 184
5.1.3 移动设备的现状 185
5.1.4 开发者生态圈 185
5.1.5 可供选择的移动互联网开发平台 185
5.2 HTML5在移动互联网上的开发示例 187
5.2.1 一个HTML5开发者的基本配置 187
5.2.2 欧朋浏览器H5版介绍 188
5.2.3 重力传感设备 191
5.2.4 电子罗盘开发 199
5.2.5 Geolocation与LBS应用开发 203
5.2.6 网页摄像与网络相册 207
5.2.7 移动设备中的离线存储 214
5.3 小结 215
第6章 WebSocket开发应用 216
6.1 WebSocket的那些事儿 216
6.1.1 WebSocket的技术背景 217
6.1.2 WebSocket的定义 218
6.1.3 WebSocket通信模式解析 219
6.1.4 WebSocket检测浏览器支持代码 220
6.2 WebSocket API的内容 220
6.2.1 属性 220
6.2.2 URL 221
6.2.3 事件 221
6.3 客户端样例程序 222
6.4 服务器端样例程序 222
6.5 Ajax、长轮询、Comet之间的那些事儿 223
6.5.1 Ajax 223
6.5.2 长轮询 225
6.5.3 Comet 226
6.5.4 Ajax与WebSocket的多角度对比 227
6.6 与WebSocket相关的几个概念 227
6.6.1 SSJS 228
6.6.2 Node.js 228
6.7 开发基于WebSocket的通信示例 235
6.7.1 聊天室 235
6.7.2 服务器监控 239
6.7.3 联机作图 243
6.8 免费的WebSocket资源 247
6.9 小结 248
第7章 瘦服务器战略与云 249
7.1 战略观察与未来10年的思考 249
7.1.1 Web瘦服务器战略 249
7.1.2 云 253
7.1.3 计算能的思考 254
7.2 Web Storage 255
7.2.1 Web Storage的概念 255
7.2.2 localStorage介绍与示例 255
7.2.3 sessionStorage的介绍与示例 258
7.2.4 浏览器端存储的方案和局限性 260
7.3 离线应用 265
7.3.1 判断浏览器是否在线 266
7.3.2 离线应用的属性与方法 266
7.3.3 manifest文件 267
7.4 Web Worker 269
7.4.1 Worker 270
7.4.2 Shared Worker 273
7.4.3 Web Worker小结 275
7.5 一个云记事本的案例 276
7.5.1 客户端逻辑分析 276
7.5.2 客户端的实现 277
7.5.3 工程实现的联想 279
7.6 小结 279
附录A HTML5标签、事件属性及其
相关网站 281
附录B 审慎对待各种框架 287
附录C 统一开发常用交流术语 289
附录D WebGL 294
附录E CSS3模块列表 299
图书封面
图书标签Tags
无
评论、评分、阅读与下载