第1篇 HTML 5移动Web开发基础 2
第1章 移动互联网的浪潮之巅 2
1.1 浪潮之巅,顺势而为 2
1.1.1 正确的时间做正确的事 2
1.1.2 互联网的第二次崛起 3
1.1.3 移动互联网正处于浪潮之巅 3
1.2 移动互联网时代,Web必将璀璨 4
1.2.1 你应该学习Web开发 4
1.2.2 你应该为未来学习——移动Web开发 5
1.3 WWW的精髓 5
1.3.1 万维网发明者的初衷 6
1.3.2 HTML是什么 7
1.3.3 再谈Web标准 9
1.3.4 如何理解Web语义化 12
1.3.5 HTML5和语义网 14
1.4 主角登场——HTML5的前世今生 14
1.4.1 聊聊HTML5那些旧事 14
1.4.2 为移动而生 16
1.4.3 你应该知道的HTML5 17
第2章 HTML 5基础 19
2.1 重温HTML 19
2.1.1 HTML能干什么 19
2.1.2 HTML的核心要素 20
2.2 HTML的语义来源 22
2.3 HTML 5的元素和属性 24
2.3.1 全局属性 24
2.3.2 HTML 5与它的全局属性 26
2.3.3 内容模型(content models) 34
2.3.4 文档元数据(Document metadata) 36
2.3.5 区块(sections) 40
2.3.6 分组内容(grouping content) 49
2.3.7 文本级语义(text-level semantics) 52
2.3.8 修改记录(edits) 58
2.3.9 嵌入内容(embedded content) 59
2.3.10 表格数据(tabular data) 68
2.3.11 HTML 5表单 71
2.3.12 input元素和其属性 74
2.3.13 表单操作 82
2.3.14 HTML 5表单兼容性 84
2.3.15 交互式元素(Interactive elements) 86
第3章 初探CSS 3 88
3.1 关于CSS的那件小事 88
3.2 CSS的核心概念 89
3.2.1 语法、层叠和特殊性(specificity) 90
3.2.2 框模型(Box Model) 92
3.2.3 可视化格式模型(visual formatting model) 96
3.2.4 表格 104
3.3 CSS 3选择器增强 106
3.3.1 属性选择器的妙用 107
3.3.2 强大的结构性伪类(Structural pseudo-classes) 107
3.3.3 其他选择器 108
3.3.4 CSS 4中的选择器 109
3.4 和图片说再见 109
3.4.1 背景和边框 110
3.4.2 渐变和阴影 114
3.4.3 自定义字体 121
3.5 CSS 3布局之道 123
3.5.1 炒冷饭——负边距与浮动 123
3.5.2 栅格系统与多列布局 124
3.5.3 弹性盒布局(Flexible Box) 126
3.6 动起来 131
3.6.1 CSS变形(CSS transform) 131
3.6.2 CSS过渡(CSS Transitions) 135
3.6.3 CSS动画(CSS Animations) 138
3.7 响应式设计基础 141
3.7.1 从两栏布局开始说起 142
3.7.2 从media到media queries 147
3.7.3 响应式栅格系统 149
3.7.4 移动优先(mobile first)理念 151
3.7.5 另一种思路:后端模板输出的优化 152
3.7.6 其他细节 153
第4章 从网页(Web page)到应用(Application) 155
4.1 Web不能承受之重 155
4.2 本地存储升级 156
4.2.1 cookie和cookie的局限 156
4.2.2 来自HTML 5的Web Storage 160
4.2.3 IE的userData 163
4.3 离线应用 163
4.3.1 缓存和应用缓存 164
4.3.2 应用缓存的基本使用 164
4.4 拖放 170
4.4.1 模拟拖放 170
4.4.2 原生拖放 174
4.5 文件操作 181
4.5.1 选择文件 182
4.5.2 操作文件 184
第5章 指尖下的浏览器 188
5.1 基本touch事件 188
5.2 模拟手势事件 192
5.3 hammerjs 194
5.4 实例:精仿iOS的相册 201
5.5 工具 204
第6章 地理定位(Geolocation API) 207
6.1 获取当前位置 207
6.2 监视位置变化 209
6.3 来半斤Google maps尝尝 209
6.4 开发者工具 217
第7章 Web Worker 218
7.1 单线程语言之殇 218
7.2 为JavaScript引入线程技术 219
7.3 嵌入式Worker代码 222
7.4 共享Worker 223
第8章 通信基础 226
8.1 XHR 2 226
8.2 跨文档通信(Cross-document messaging) 232
8.3 通道通信(channel messaging) 234
第9章 实时Web技术 237
9.1 轮询和长轮询(comet) 237
9.2 服务器事件(server-sent events) 239
9.3 Web Sockets 241
9.4 利器:Socket.IO 243
9.5 基于Socket.IO的聊天室 247
第10章 感官世界 257
10.1 感知方向(orientation)和动作(motion) 257
10.2 音视频捕获 262
第11章 history与导航 264
11.1 基于hashchange事件管理导航 264
11.2 HTML 5 history API 265
11.3 history.js 268
第2篇 HTML 5移动Web开发实战 272
第12章 站在巨人们的肩上——jQuery Mobile 272
12.1 移动Web框架概览 272
12.1.1 HTML 5移动应用技术大观 272
12.1.2 因地制宜、量体裁衣 274
12.2 jQuery Mobile 276
12.2.1 综述 276
12.2.2 Hello,jQueryMobile! 279
12.2.3 页面(Pages) 281
12.2.4 Ajax导航模型和转场动画(transitions) 286
12.2.5 UI组件——一切皆响应 289
12.2.6 UI组件——表单元素 289
12.2.7 UI组件——Header&Footer 309
12.2.8 UI组件——ListView 315
12.2.9 UI组件——Collapsibles和Accordions 319
12.2.10 UI组件——popup 325
12.2.11 UI组件——dialog 328
12.2.12 响应式组件——responsive grids 329
12.2.13 响应式组件——reflow tables 333
12.2.14 响应式组件——Column Toggle tables 335
12.2.15 响应式组件——sliding panels 337
12.2.16 主题化和themeroller 340
12.2.17 进阶 342
第13章 Sencha Touch 344
13.1 综述 344
13.2 bonjour,Sencha Touch! 345
13.3 第一个Sencha Touch程序 349
13.4 进阶 361
第14章 Bootstrap 363
14.1 Bootstrap 3综述 363
14.2 Grid系统 366
14.3 响应式实用类 372
14.4 组件更新——Navbar 372
14.5 组件更新——List group 376
14.6 组件更新——Panels 378
14.7 从Bootstrap 2迁移到Bootstrap 3 382
第15章 PhoneGap 385
15.1 PhoneGap 101 385
15.2 开发基于PhoneGap的程序 389
第16章 其他移动Web技术 391
16.1 Foundation 391
16.2 Semantic-UI 395
16.3 Pure 396
16.4 Titanium 399
第17章 如何成为优秀的前端工程师 401
17.1 Node.js 401
17.1.1 什么是Node.is 401
17.1.2 Node.is基础 402
17.1.3 Node.js模块系统 403
17.1.4 Node.js包管理系统NPM 405
17.1.5 事件驱动和异步I/O 406
17.1.6 前端工程师需要了解Node.js的什么 407
17.2 工具链 407
17.2.1 CoffeeScript 407
17.2.2 CSS预处理器(CSS preprocessor) 411
17.2.3 Grunt 414
17.2.4 Bower 417
17.2.5 Yeoman 419
17.3 关于调试的那些事儿 425
17.3.1 Chrome开发者工具 425
17.3.2 多设备调试:Adobe Edge Inspect 427
17.4 从职业到专业、从前端到全端 429
17.4.1 Mac与Windows 429
17.4.2 Sublime Text 430
17.4.3 MV*框架 431
17.4.4 如何保持你的知识处在最前沿 432
17.4.5 跳出前端,更大的世界 433