HTML5 与 CSS3 权威指南
HTML5 与 CSS3 权威指南
编辑推荐
适读人群 :打算学习 Web 应用程序及 Web 网站相关开发知识的读者书中力求以浅显易懂的方式对 HTML5 进行介绍的同时,也针对相关 Web 知识进行了介绍,本书可作为他们学习有关 Web 开发技术的必不
(1)本书已经成为 HTML5 与 CSS3 领域公认的标杆著作,是开发者们学习 HTML5 与 CSS3 的事实标准。
(2)前 3 版累计印刷超过 25 次,销量超过 10 万册,网络书店评论 14000 余条,好评率 99%,是同类书中的领头羊,也是原创计算机图书领域的佼佼者。
(3)针对 HTML5 与 CSS3 技术的发展和 Web 应用环境的变化做了有针对性的优化、更新、补充和删除,内容更有针对性,也更实用。
内容简介
本书是 HTML 5 与 CSS 3 领域公认的标杆之作,被读者誉为“系统学习 HTML 5 与 CSS 3 的标准著作”,也是 Web 前端工程师案头必备工作手册。
前 3 版累计印刷超过 25 次,网络书店评论超过 14000 条,98% 以上的评论都是五星级好评。不仅是 HTML 5 与 CSS 3 图书领域当之无愧的领头羊,而且在整个原创计算机图书领域也是佼佼者,第 4 版首先从技术的角度根据*新的 HTML 5 和 CSS 3 标准进行了更新和补充,其次是根据读者的反馈对内容的组织结构和写作方式做了进一步的优化,内容更实用,阅读体验也更好。
全书共 26 章,本书分为上下两册:
上册(1~14 章)
全面系统地讲解了 HTML 5 相关的各项主要技术,以 HTML 5 对现有 Web 应用产生的变革开篇,顺序讲解了 HTML 5 与 HTML 4 的区别、HTML 5 的结构、表单及新增页面元素、ECMAScript、文件 API、本地存储、XML HttpRequest、Web Workers、Service Worker、通信 API、Web 组件、绘制图形、多媒体等内容。
下册(15~26 章)
全面系统地讲解了 CSS 3 相关的各项主要技术,以 CSS 3 的功能和模块结构开篇,顺序讲解了各种选择器、文字与字体、盒相关样式、背景与边框、变形处理、动画、布局、多媒体,以及 CSS 3 中的一些其他重要样式。
全书一共 300 余个示例页面和 1 个综合性的案例,所有代码均通过作者上机调试,读者可下载书中代码,直接在浏览器查看运行结果。
作者简介
陆凌牛
Web 开发工程师、软件开发工程师和系统设计师。从事 Web 开发多年,对各种 Web 开发技术(包括前端和后端)都有非常深入的研究,经验极其丰富。HTML 5 和 CSS 3 等新技术的先驱者和布道者,不仅对 HTML 5 与 CSS 3 有非常深入的研究,而且对 Node.JS 等开发框架也有非常深刻的研究,并且付诸了大量实践。同时,他还擅长。NET 和 Java 的相关技术,在 C#、VB.NET、ASP.NET、SQL Server 、Oracle、Java、Struts、Spring、Hibernate 等方面也积累大量的实战经验。
此外,他还是一位颇有影响力的技术作家:
(1)《HMTL 5 与 CSS 3 指南》凭借优质的内容深受读者好评,同类书只能望其项背。前 3 版累计印刷超过 25 次,销量超过 10 万册,被读者誉为“系统学习 HTML 5 与 CSS 3 的更好选择”和“Web 前端工程师案头必备图书之一”, 不仅是 HTML 5 与 CSS 3 领域的领头羊和标杆,而且是近年来原创计算机图书领域的一面旗帜。
(2)《HTML 5 开发精要与案例详解》、《Sencha Touch 指南》、《Node.js 指南》等著作同样也取得了非常好的口碑和销量。
目录
前言
第 1 章 Web 时代的变迁 1
- 1.1 迎接新的 Web 时代 1
- 1.1.1 HTML 5 时代即将来临 1
- 1.1.2 HTML 5 的目标 3
- 1.1.3 HTML5 的小版本更新 4
- 1.2 HTML 5 深受欢迎的理由 4
- 1.2.1 世界知名浏览器厂商对 HTML 5 的支持 4
- 1.2.2 第一个理由:时代的要求 5
- 1.2.3 第二个理由:Internet Explorer 85
- 1.3 可以放心使用 HTML 5 的三个理由 6
- 1.4 HTML 5 要解决的三个问题 7
第 2 章 HTML 5 与 HTML 4 的区别 8
- 2.1 语法的改变 8
- 2.1.1 HTML 5 的语法变化 8
- 2.1.2 HTML 5 中的标记方法 9
- 2.1.3 HTML 5 确保的兼容性 10
- 2.1.4 标记示例 11
- 2.2 新增的元素和废除的元素 12
- 2.2.1 新增的结构元素 12
- 2.2.2 新增的其他元素 14
- 2.2.3 新增的 input 元素的类型 18
- 2.2.4 废除的元素 18
- 2.3 新增的属性和废除的属性 19
- 2.3.1 新增的属性 19
- 2.3.2 废除的属性 21
- 2.4 全局属性 23
- 2.4.1 contentEditable 属性 23
- 2.4.2 designMode 属性 24
- 2.4.3 hidden 属性 24
- 2.4.4 spellcheck 属性 25
- 2.4.5 tabindex 属性 25
- 2.5 新增的事件 25
- 2.6 只监听一次事件 26
第 3 章 HTML 5 的结构 28
- 3.1 新增的主体结构元素 28
- 3.1.1 article 元素 29
- 3.1.2 section 元素 31
- 3.1.3 nav 元素 33
- 3.1.4 aside 元素 34
- 3.1.5 time 元素与微格式 36
- 3.1.6 pubdate 属性 37
- 3.2 新增的非主体结构元素 38
- 3.2.1 header 元素 38
- 3.2.2 footer 元素 39
- 3.2.3 address 元素 40
- 3.2.4 main 元素 41
- 3.3 HTML 5 中网页结构 42
- 3.3.1 HTML 5 中的大纲 42
- 3.3.2 大纲的编排规则 48
- 3.3.3 对新的结构元素使用样式 51
第 4 章 表单及其他新增和改良元素 53
- 4.1 新增元素与属性 53
- 4.1.1 新增属性 53
- 4.1.2 大幅度地增加与改良 input 元素的种类 65
- 4.1.3 对新的表单元素使用样式 77
- 4.1.4 output 元素的追加 77
- 4.2 表单验证 78
- 4.2.1 自动验证 78
- 4.2.2 取消验证 79
- 4.2.3 显式验证 79
- 4.3 增强的页面元素 80
- 4.3.1 新增的 figure 元素与 figcaption 元素 80
- 4.3.2 新增的 details 元素与 summary 元素 82
- 4.3.3 新增的 mark 元素 83
- 4.3.4 新增的 progress 元素 86
- 4.3.5 新增的 meter 元素 87
- 4.3.6 新增的 dialog 元素 88
- 4.3.7 改良的 a 元素 90
- 4.3.8 改良的 ol 列表 91
- 4.3.9 改良的 dl 列表 92
- 4.3.10 加以严格限制的 cite 元素 93
- 4.3.11 重新定义的 small 元素 94
- 4.3.12 安全性增强的 iframe 元素 94
- 4.3.13 增强的 script 元素 97
第 5 章 ECMAScript 中的新增功能 102
- 5.1 新增语法 103
- 5.1.1 使用 for-of 循环 103
- 5.1.2 使用 let 关键字与 const 关键字声明变量 104
- 5.1.3 使用 class 关键字声明类 109
- 5.1.4 不确定参数及默认参数值 116
- 5.1.5 箭头函数 121
- 5.1.6 生成器函数 126
- 5.1.7 解构赋值 129
- 5.1.8 模板字符串 138
- 5.1.9 在客户端使用 JavaScript 模块 141
- 5.2 新增对象及数据类型 145
- 5.2.1 Promise 对象 145
- 5.2.2 全局唯一标识符:symbol 166
- 5.2.3 代理与反射 170
- 5.2.4 新增的各种集合对象 176
- 5.3 对现有对象的扩展 187
第 6 章 文件 API 194
- 6.1 FileList 对象与 file 对象 195
- 6.2 ArrayBuffer 对象与 ArrayBuffer-View 对象 196
- 6.2.1 基本概念 196
- 6.2.2 ArrayBuffer 对象 196
- 6.2.3 ArrayBufferView 对象 196
- 6.2.4 DataView 对象 198
- 6.3 Blob 对象 202
- 6.3.1 Blob 对象概述 202
- 6.3.2 创建 Blob 对象 204
- 6.3.3 Blob 对象的 slice 方法 207
- 6.4 FileReader 对象 208
- 6.4.1 FileReader 对象的方法 208
- 6.4.2 FileReader 对象的事件 209
- 6.4.3 FileReader 对象的使用示例 209
第 7 章 本地存储 217
- 7.1 Web Storage 218
- 7.1.1 Web Storage 是什么 218
- 7.1.2 简单 Web 留言本 221
- 7.1.3 作为简易数据库来利用 224
- 7.1.4 利用 storage 事件实时监视 Web Storage 中的数据 226
- 7.2 indexedDB 数据库 229
- 7.2.1 本地数据库的基本概念 229
- 7.2.2 indexedDB 数据库的基本概念 229
- 7.2.3 连接数据库 229
- 7.2.4 数据库的版本更新 231
- 7.2.5 创建对象仓库 233
- 7.2.6 创建索引 236
- 7.2.7 索引的 multiEntry 属性值 239
- 7.2.8 使用事务 239
- 7.2.9 保存数据 241
- 7.2.10 在 indexedDB 数据库中保存 Blob 对象 244
- 7.2.11 获取数据 247
- 7.2.12 根据主键值检索数据 251
- 7.2.13 根据搜索范围获取数据的主键值 257
- 7.2.14 根据索引属性值检索数据 260
- 7.2.15 获取所有数据 266
- 7.2.16 复合索引 272
- 7.2.17 统计对象仓库中的数据数量 276
- 7.2.18 列举数据库中所有对象仓库的名称 278
- 7.2.19 列举事务中所有可访问对象仓库名称 279
- 7.2.20 删除对象仓库 281
- 7.2.21 根据主键删除单条数据 282
- 7.2.22 列举对象仓库的所有索引名称及删除索引 286
- 7.2.23 使用索引对象的方法 289
- 7.2.24 在指定范围中抽取数据主键 298
- 7.2.25 使用游标对象的方法 301
第 8 章 扩展的 XMLHttpRequest API 及 FetchAPI 307
- 8.1 从服务器端获取二进制数据 307
- 8.1.1 ArrayBuffer 响应 308
- 8.1.2 Blob 响应 313
- 8.2 发送数据 314
- 8.2.1 发送字符串 315
- 8.2.2 发送表单数据 316
- 8.2.3 上传文件 319
- 8.2.4 发送 Blob 对象 320
- 8.2.5 发送 ArrayBuffer 对象 323
- 8.3 跨域数据请求 327
- 8.4 使用 Fetch API 328
- 8.4.1 告别 XMLHttpRequest 328
- 8.4.2 使用 Fetch API 发出请求 329
- 8.4.3 向服务器端发送 POST 请求 332
- 8.4.4 提交 JSON 数据 333
- 8.4.5 发送表单数据 334
- 8.4.6 上传文件 335
- 8.4.7 提交及下载 Blob 对象或 ArrayBuffer 对象 336
第 9 章 使用 Web Workers 处理线程 339
- 9.1 基础知识 340
- 9.2 与线程进行数据的交互 343
- 9.3 线程嵌套 345
- 9.3.1 单层嵌套 345
- 9.3.2 在多个子线程中进行数据的交互 348
- 9.4 线程中可用的变量、函数与类 349
- 9.5 适用场合 350
- 9.6 SharedWorker 350
- 9.6.1 基础知识 350
- 9.6.2 实现前台页面与后台线程之间的通信 351
- 9.6.3 定义页面与共享的后台线程开始通信时的处理 351
- 9.6.4 SharedWorker 的使用示例 352
第 10 章 使用 Service Worker 实现离线应用程序 358
- 10.1 Service Worker 的基本概念 358
- 10.2 注册、下载及安装 359
- 10.3 自定义请求的响应 365
- 10.4 激活 372
- 10.5 其他用例 375
第 11 章 通信 API 376
- 11.1 跨文档消息传输 377
- 11.1.1 跨文档消息传输的基本知识 377
- 11.1.2 跨文档消息传输示例 377
- 11.1.3 通道通信 379
- 11.2 WebSockets 通信 384
- 11.2.1 WebSockets 通信的基本知识 384
- 11.2.2 使用 WebSockets API 384
- 11.2.3 WebSockets API 使用示例 385
- 11.2.4 发送对象 387
- 11.2.5 发送与接收原始二进制数据 388
- 11.2.6 实现 WebSockets API 的开发框架 389
- 11.2.7 WebSocket 协议 390
- 11.2.8 WebSockets API 的适用场景 390
- 11.3 Server-Sent Events API 390
- 11.3.1 Server-Sent Events API 的基本概念 390
- 11.3.2 Server-Sent Events API 的实现方法 391
- 11.4 BroadcastChannel API 398
- 11.4.1 BroadcastChannel API 的基本概念 398
- 11.4.2 与其他技术的区别 400
第 12 章 Web 组件 402
- 12.1 使用 template 元素定制客户端模板 403
- 12.1.1 特性检测 403
- 12.1.2 定义模板内容 403
- 12.1.3 动态设置模板内容 406
- 12.1.4 模板中嵌套模板 406
- 12.2 自身独立的 Shadow DOM 组件 409
- 12.2.1 Shadow DOM 的基本概念 410
- 12.2.2 创建 Shadow DOM 410
- 12.2.3 实现内容与展示的分离 412
- 12.2.4 对 Shadow DOM 使用样式 423
- 12.2.5 高级主题 430
- 12.3 自定义元素 432
- 12.3.1 自定义元素的基本概念 432
- 12.3.2 自定义全新的 HTML 元素 432
- 12.3.3 扩展元素 436
- 12.3.4 在 JavaScript 脚本代码中创建自定义元素 439
- 12.3.5 自定义元素响应 440
- 12.3.6 自定义元素的属性 446
- 12.3.7 指定自定义元素的内容 451
- 12.3.8 指定自定义元素的样式 454
- 12.4 HTML 导入 456
- 12.4.1 HTML 导入所能解决的课题 456
- 12.4.2 HTML 导入的基本概念 456
- 12.4.3 打包资源 457
- 12.4.4 load 事件与 error 事件 457
- 12.4.5 使用被导入文档 459
- 12.4.6 传输 Web 组件 462
- 12.4.7 管理依赖和子导入 464
- 12.4.8 性能注意事项 468