第Ⅰ篇 手机版专用网站设计和开发入门篇 3
第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使用B1ackBerry浏览器测试网页 19
1.4.1.B1ackBerry模拟器安装 19
1.4.2使用B1ackBerry模拟器 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.2CSS 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
第Ⅱ篇 HTML 5在iPhone、Android、Windows Phone的实战篇 147
第8章HTML5简介和编写规范 147
8.1 HTML 5的新特性 148
8.1.1实现Web应用程序 148
8.1.2用于更好地呈现内容 149
8.2 HTML 5轻松入门 149
8.2.1使用XML语法编写HTML5文档 149
8.2.2使用HTML语法编写HTML5文档 154
8.2.3HTML 5文档的构成 156
8.3手机浏览器对HTML 5的支持 157
第9章HTML5视频和音频 159
9.1 ﹤video﹥元素 160
9.1.1视频格式 160
9.1.2建议的设置 162
9.1.3属性 162
9.1.4配置服务器添加MIME类型 162
9.1.5全兼容设置 163
9.2 ﹤source﹥元素 163
9.3 ﹤audio﹥元素 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章 使用HTML5结构元素构建网页 177
10.1文档结构元素 178
10.1.1 ﹤article﹥元素 179
10.1.2 ﹤section﹥元素 182
10.1.3 ﹤aside﹥元素 183
10.1.4 ﹤nav﹥元素 185
10.1.5 ﹤header﹥元素 187
10.1.6 ﹤footer﹥元素 188
10.2标题和标题组合 189
10.3 ﹤address﹥元素 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使用CanvasRenderingContext2D 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
第Ⅲ篇 基于HTML、 CSS和JavaScript设计网站和开发移动Web应用 315
第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章 使用jQueryMobile 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
第Ⅳ篇 基于HTML、CSS和JavaScript开发手机应用程序 407
第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