目录
第I篇 手机版专用网站设计和开发入门篇
第1章 准备创作环境和测试环境 3
1.1 使用Mobile Safari测试网页 4
1.1.1 iOS Simulator安装 5
1.1.2 使用Mobile Safari 6
1.2 使用IEMobile测试网页 7
1.2.1 Windows Phone 7 Emulator安装 8
1.2.2 使用IEMobile 9
1.3 使用Chrome Lite测试网页 10
1.3.1 Android Emulator安装 10
1.3.2 使用Chrome Lite 17
1.4 使用BlackBerry浏览器测试网页 19
1.4.1 BlackBerry模拟器安装 19
1.4.2 使用BlackBerry模拟器 20
1.5 安装和设置Web服务器 22
1.5.1 安装IIS 22
1.5.2 了解Web服务器根目录 24
第2章 建立手机网页开发的技术知识结构 27
2.1 怎样学习网页设计和开发 28
2.2 HTML、XHTML和CSS的历史 29
2.2.1 HTML简介 29
2.2.2 HTML的历史版本 30
2.2.3 CSS的历史 31
2.2.4 CSS的历史版本 32
2.2.5 XML的历史 33
2.2.6 标准、规范和实现 34
2.2.7 关于W3C 34
2.3 ECMAScript和JavaScript 35
2.3.1 关于ECMA 35
2.3.2 JavaScript版本和ECMAScript版本的关系 36
2.3.3 关于ECMAScript精简纲要 37
2.4 考虑手机网页与桌面网页的不同 38
2.4.1 屏幕分辨率 38
2.4.2 手机浏览器的可视区域 39
2.4.3 手机网站的技术区分 40
2.4.4 建立设计和技术的参照点 41
第3章 专用于手机的HTML——XHTML MP和XHTML Basic 43
3.1 XHTML模块家族 44
3.1.1 什么是XHTML模块化 44
3.1.2 为何要进行XHTML模块化 46
3.1.3 XHTML Basic 46
3.1.4 XHTML MP 47
3.1.5 关于OMA和WAP论坛 48
3.1.6 关于WAP 2.0 49
3.2 编写XHTML MP网页 49
3.2.1 定义XHTML MP网页MIME类型 50
3.2.2 侦测XHTML MP客户端 50
3.3 为手机网页定义元数据 51
3.3.1 定义缓存 51
3.3.2 定义应用程序名 53
3.4 交互方法和导航 54
3.4.1 触摸屏手机的交互 54
3.4.2 键盘手机的交互 55
3.4.3 为键盘手机设计热键导航 55
3.4.4 特殊的超链接——HTML表单控件 56
3.5 设计表单 59
3.5.1 特殊的表单控件 60
3.5.2 指定输入模式 61
3.6 文档关系链接(link元素) 63
3.7 关于插件和下载 64
3.7.1 直接链接下载 64
3.7.2 使用OMA下载 64
3.7.3 下载注意事项 67
第4章 专用于手机的CSS——CSS MP和WCSS 69
4.1 CSS MP和WCSS 70
4.1.1 CSS MP可用的样式属性 70
4.1.2 不推荐使用的样式属性 73
4.1.3 WCSS可用的样式属性 73
4.1.4 使用Marquee定义溢出滚动方式和跑马灯效果 76
4.1.5 CSS MP和WCSS的语法 79
4.1.6 在XHTML文档中应用CSS 79
4.2 使用CSS介质为手机单独设计样式表 81
4.2.1 了解介质类型描述符 81
4.2.2 将样式表应用于不同的介质 82
4.2.3 专用于手持设备的介质 84
4.3 使用CSS介质查询为手机单独设计样式表 84
4.3.1 使用介质查询 85
4.3.2 CSS 3介质查询支持的介质属性 86
4.3.3 常用的介质查询 87
第5章 CSS手机版专用网页布局第一步——视点和设备方向 89
5.1 可视区域和视点 90
5.1.1 了解视点 92
5.1.2 手机上的视点 93
5.1.3 改变视点 94
5.1.4 分别对横屏和竖屏布局 95
5.2 关于@viewport规则 97
5.2.1 使用HTML元数据 98
5.2.2 常用的声明 100
5.2.3 其他HTML元数据 100
第6章 CSS手机版专用网页布局实战 101
6.1 单列布局 102
6.1.1 液态宽度 102
6.1.2 属性值的计算步骤 103
6.2 导航条设计 104
6.2.1 tab导航菜单1 104
6.2.2 tab导航菜单2 107
6.2.3 单列菜单导航条 109
6.2.4 图标按钮排列导航 114
6.3 图文版式 119
6.3.1 限制替换元素的幅面大小 119
6.3.2 图片替换 119
6.3.3 字体问题 121
第7章 专用于手机的JavaScript——ESMP 123
7.1 使用ESMP 124
7.1.1 ESMP与ECMAScript的不同 124
7.1.2 ESMP BOM 125
7.1.3 ESMP CoreDOM 127
7.1.4 ESMP HTMLDOM 129
7.2 使用JavaScript的注意事项 133
7.2.1 检测浏览器支持 133
7.2.2 关于打开新窗口 135
7.2.3 关于间隔调用 135
7.2.4 隐藏浏览器工具条 135
7.3 定义和触发事件 136
7.3.1 基本交互事件 137
7.3.2 关于软键盘事件 138
7.3.3 感知手机握持的方向和orientationchange事件 139
7.4 触摸和手势 140
7.4.1 触摸事件 140
7.4.2 多点触控事件——手势 141
7.4.3 事件对象和Touch对象 142
7.4.4 触摸点ID 143
7.4.5 触摸和拖动 144
第II篇 HTML 5在 iPhone、Android、Windows Phone的实战篇
第8章 HTML 5简介和编写规范 147
8.1 HTML 5的新特性 148
8.1.1 实现Web应用程序 148
8.1.2 用于更好地呈现内容 149
8.2 HTML 5轻松入门 149
8.2.1 使用XML语法编写HTML 5文档 149
8.2.2 使用HTML语法编写HTML 5文档 154
8.2.3 HTML 5文档的构成 156
8.3 手机浏览器对HTML 5的支持 157
第9章 HTML 5视频和音频 159
9.1 元素 160
9.1.1 视频格式 160
9.1.2 建议的设置 162
9.1.3 属性 162
9.1.4 配置服务器添加MIME类型 162
9.1.5 全兼容设置 163
9.2 元素 163
9.3 元素 164
9.4 自定义视频和音频控制 166
9.5 使用HTML 5 DOM动态控制 167
9.5.1 关于Media元素 168
9.5.2 出错处理 170
9.5.3 关于状态 171
9.5.4 其他属性 172
9.5.5 使用方法控制媒体 173
9.5.6 检测媒体支持 173
9.5.7 媒体事件 174
9.6 安全和隐私 175
9.7 浏览器支持 175
第10章 使用HTML 5结构元素构建网页 177
10.1 文档结构元素 178
10.1.1 元素 179
10.1.2 元素 182
10.1.3 元素 183
10.1.4 元素 185
10.1.5 元素 187
10.1.6 元素 188
10.2 标题和标题组合 189
10.3
元素 190
10.4 浏览器兼容 191
第11章 使用画布在网页上绘制图——Canvas 193
11.1 使用Canvas绘图的基本步骤 194
11.1.1 绘制第一幅图 194
11.1.2 理解坐标 195
11.2 关于HTML 5 DOM Canvas API 196
11.3 使用CanvasRendering
Context2D 198
11.3.1 颜色、渐变和模式 202
11.3.2 线条粗细、线帽和线条结合 206
11.3.3 阴影 207
11.3.4 绘制矩形 208
11.3.5 全局设置——混合模式 209
11.3.6 全局设置——透明度 210
11.4 创建和渲染路径 210
11.4.1 了解图形和路径 211
11.4.2 绘制直线线条 211
11.4.3 线条和填充 212
11.4.4 绘制弧线 213
11.4.5 绘制曲线 214
11.4.6 绘制矩形路径 214
11.4.7 绘制剪切路径 215
11.4.8 重置路径和关闭子路径 216
11.4.9 检测路径点 217
11.4.10 焦点外廓 218
11.5 插入图片 219
11.6 转换、旋转、平移和缩放 220
11.7 绘制文本 222
11.8 像素级绘制 223
11.8.1 基本使用方法 224
11.8.2 创建反相 225
11.8.3 分解通道 226
11.8.4 通道混合器 228
11.9 保存和恢复绘画状态 233
11.10 使用Canvas实现动画 234
11.10.1 太极旋转 234
11.10.2 绘制动态时钟 237
第12章 Web存储 241
12.1 Web存储概述 242
12.2 Web存储与Cookie 242
12.3 本地存储和会话存储 242
12.3.1 在客户端持久存储数据 242
12.3.2 关于浏览器兼容 243
12.3.3 在会话期存储数据 244
12.4 Storage接口 246
12.4.1 获取和更新存储 248
12.4.2 清除存储 249
12.4.3 清除指定的键 250
12.4.4 添加新键和更新键值 250
12.5 Storage事件 251
第13章 Web SQL数据库 253
13.1 第一个Web SQL Database应用 254
13.1.1 使用iPhone查看和管理Web SQL Database 256
13.1.2 使用Web SQL Database的基本步骤 257
13.2 异步数据库 259
13.2.1 执行数据库事务 260
13.2.2 数据库版本管理 262
13.2.3 执行SQL语句 263
13.3 同步数据库 265
13.3.1 执行数据库事务 266
13.3.2 数据库版本管理 268
13.3.3 执行SQL语句 269
13.4 处理数据库操作结果 270
13.5 错误和异常 271
13.6 在开发人员工具中使用SQL语句 272
13.7 SQLite SQL语法和数据库的数据类型 273
13.8 SQL注入缺陷和参数化查询 275
第14章 离线网络应用程序——文件缓存 277
14.1 使用离线应用 278
14.1.1 配置MIME类型 278
14.1.2 创建离线应用网页及网页中要引用的资源 280
14.1.3 创建清单文件 280
14.1.4 测试离线应用 281
14.1.5 更新离线存储 281
14.2 缓存清单文件格式 282
14.2.1 定义要缓存的文件 282
14.2.2 备抵机制 283
14.2.3 在线白名单 284
14.2.4 注释 284
14.3 使用DOM方法处理离线应用 285
14.3.1 获取缓存 286
14.3.2 检查状态 286
14.3.3 更新缓存 287
14.3.4 监听事件 288
14.3.5 检测脱机模式 290
14.4 将网页添加为桌面快捷方式 292
14.4.1 为网站设计图标 292
14.4.2 为Android添加桌面快捷方式 294
14.4.3 指定一个启动图片 296
14.4.4 隐藏Safari界面 296
14.4.5 改变状态栏 296
第15章 地理位置定位 297
15.1 了解位置定位 299
15.1.1 位置定位是怎么工作的 299
15.1.2 位置定位的精确度 299
15.2 使用Geolocation 299
15.2.1 获取Geolocation对象 299
15.2.2 获取当前地理位置 300
15.2.3 处理位置信息 301
15.2.4 出错处理 302
15.2.5 配置项 303
15.2.6 持续追踪位置 303
15.3 地理位置定位和在线地图结合使用 303
15.3.1 反向Geolocation——将经度/纬度转换为地名 304
15.3.2 与Google Map结合使用 305
15.3.3 使用Google Maps JavaScript API 310
第III篇 基于HTML、CSS和JavaScript设计网站和开发移动Web应用
第16章 使用jQuery Mobile开发Web应用程序 315
16.1 使用jQuery核心库 316
16.1.1 第一个jQuery范例 317
16.1.2 基本语法 318
16.1.3 为什么要使用jQuery 320
16.1.4 解决jQuery冲突 322
16.2 使用jQuery Mobile 323
16.2.1 第一个jQuery Mobile范例 324
16.2.2 怎样在“内容页”间导航 326
16.2.3 使用超链接 327
16.2.4 定义页面过渡效果 327
16.2.5 定义样式主题 327
16.2.6 创建对话框 329
16.2.7 固定页眉和页脚 329
16.2.8 全屏效果 330
16.3 导航模型——jQuery Mobile的核心机制 330
16.3.1 页面导航的基本规则 331
16.3.2 自动生成的内容页和子书签地址 332
16.3.3 注意事项 333
第17章 使用jQuery Mobile UI插件——Widget 335
17.1 定义工具按钮 336
17.1.1 定义按钮 336
17.1.2 指定按钮图标 337
17.1.3 自定义按钮图标 337
17.1.4 行内级按钮和块级按钮 338
17.1.5 按钮分组 338
17.1.6 导航条 339
17.1.7 添加返回按钮 342
17.2 定义列表视图 342
17.2.1 有序列表 343
17.2.2 嵌套列表 343
17.2.3 分割按钮列表 344
17.2.4 列表项分组 346
17.2.5 缩略图和图标 346
17.2.6 对列表进行边缘修饰 348
17.2.7 只读列表 349
17.2.8 文字格式和计数泡 350
17.2.9 过滤列表项 351
17.3 内容布局 352
17.3.1 网格布局 352
17.3.2 可折叠内容 355
17.4 定义jQuery Mobile表单 358
17.4.1 表单控件的布局容器 359
17.4.2 切换开关控件 360
17.4.3 滑动条控件 361
17.4.4 单选按钮和复选框控件 361
17.4.5 水平开关键控件 363
17.4.6 选项菜单控件 363
17.4.7 表单提交 368
第18章 使用Ajax和程序动态控制jQuery Mobile 369
18.1 jQuery Mobile的自定义事件 370
18.2 使用工具方法 372
18.3 jQuery Mobile初始化配置 376
18.3.1 关于mobileinit事件 377
18.3.2 配置选项 377
18.3.3 其他全局配置项 379
第19章 手机专用网页JavaScript的调试 381
第20章 侦测手机和浏览器 385
20.1 使用客户端代码侦测浏览器 386
20.2 使用HTTP请求报头 389
20.2.1 使用服务端技术侦测浏览器 389
20.2.2 使用.htaccess 393
20.3 使用WURFL、DeviceAtlas和MDBF 393
20.3.1 使用WURFL 394
20.3.2 使用MDBF 397
20.3.3 不足之处 403
第IV篇 基于HTML、CSS和JavaScript开发手机应用程序
第21章 结合PhoneGap为Android和 iPhone开发本机应用程序 407
21.1 预要求 408
21.2 基于HTML、CSS和JavaScript创建Android本机应用 408
21.2.1 搭建创作环境 409
21.2.2 开发和测试Android应用程序 409
21.2.3 编译、提交和安装 412
21.3 基于HTML、CSS和JavaScript创建iPhone本机应用 412
21.3.1 搭建创作环境 412
21.3.2 开发和测试iPhone应用程序 412
21.3.3 编译、提交和安装 414
21.4 结合jQuery Mobile开发 414
第22章 与设备特定功能结合 415
22.1 运动传感器 416
22.1.1 获取当前的加速度偏移量 416
22.1.2 以特定时间间隔获取加速度偏移量 417
22.2 获取设备手持方向——罗盘 418
22.3 多媒体控制 419
22.3.1 使用camera从照相机捕捉画面 420
22.3.2 使用capture对象录制语音、录制视频和捕捉图片 422
22.3.3 使用Media录制音频和控制音频播放 427
22.4 获取连接信息 431
22.4.1 判定连接类型 431
22.4.2 判定连接能否建立 432
22.5 获取设备相关信息 433
22.6 处理事件 434
22.7 地理位置定位Geolocation 435
22.8 Web SQL Database和Web存储 435
22.9 系统消息提示 435
22.10 管理手机通讯录数据库 438
22.10.1 创建一个新的联系人 438
22.10.2 查询联系人 439
22.10.3 处理联系人信息 441
22.11 文件系统处理 449
22.11.1 获取文件系统 449
22.11.2 目录处理 450
22.11.3 遍历目录 456
22.11.4 文件处理 456
22.11.5 修改文件内容 459
22.11.6 读取文件内容 460
22.11.7 出错处理 462
22.11.8 文件上传 463