编辑推荐

适读人群:《疯狂HTML5+CSS3+JavaScript讲义(第2版)》对HTML5、CSS3、JavaScript的介绍是“从零开始”的,因此阅读《疯狂HTML5+CSS3+JavaScript讲义(第2版)》并不需要额外的基础。对于刚刚从事前端开发的新人,《疯狂HTML5+CSS3+JavaScript讲义(第2版)》具有很好的学习价值;对于有一定工作经验的前端工程师,《疯狂HTML5+CSS3+JavaScript讲义(第2版)》具有很高的参考价值。《疯狂HTML5+CSS3+JavaScript讲义(第2版)》也可作为高校、培训机构的培训教材。

《疯狂HTML5+CSS3+JavaScript讲义(第2版)》由知名IT作家李刚老师创作

疯狂HTML5+CSS3+JavaScript讲义(第2版)》面向HTML5.1规范正式版,更新多个元素、拖放规范的相关知识,新增外挂字幕、点线模式等内容,着重介绍新增的手机端相关特性

详细介绍渐变背景支持、弹性盒布局、手机浏览器响应式布局、3D变换等CSS新增特性及重大改进

内容简介

W3C于2016年11月1日正式发布了HTML5.1规范,该规范已经得到广大浏览器厂商的支持,主流的*新版本的浏览器几乎都支持该规范。与此同时,前端开发的持续火爆,使得HTML5成为目前的热门领域。《疯狂HTML5+CSS3+JavaScript讲义(第2版)》是一本全面介绍HTML5、CSS3和JavaScript前端开发技术的图书,系统地介绍了HTML5常用的元素和属性、HTML5的表单元素和属性、HTML5的绘图支持、HTML5的多媒体支持、CSS3的功能和用法、*前沿的变形与动画功能等。除此之外,《疯狂HTML5+CSS3+JavaScript讲义(第2版)》还系统地介绍了JavaScript编程知识,包括JavaScript基本语法、DOM编程,以及HTML5新增的本地存储、Indexed数据库、离线应用、JavaScript多线程、客户端通信支持、WebSocket编程等。《疯狂HTML5+CSS3+JavaScript讲义(第2版)》的定位是一本前端开发的“实战性”图书,因此在介绍各知识点时并不是简单地停留在知识点层面阐述,而是结合了大量实例来让读者对照练习、学以致用。《疯狂HTML5+CSS3+JavaScript讲义(第2版)》*后还提供了一个基于HTML5技术的小游戏:疯狂俄罗斯方块。该游戏综合运用了HTML5的绘图支持、客户端存储等技术,具有较高的参考价值。《疯狂HTML5+CSS3+JavaScript讲义(第2版)》提供了配套的答疑网站,如果读者在阅读《疯狂HTML5+CSS3+JavaScript讲义(第2版)》时遇到了技术问题,可以登录疯狂Java联盟(http://www.crazyit.org)发帖,笔者将会及时予以解答。

作者简介

李刚,十余年软件开发从业经验,疯狂软件教育中心教学总监。疯狂Java实训营创始人,疯狂Java体系原创图书作者。广东技术师范学院计算机科学系兼职副教授,51CTO专家门诊特邀嘉宾。培训的学生已在华为、IBM、阿里软件、网易、电信盈科等名企就职。国内知名高端IT技术图书作家,已出版《疯狂Java讲义》《疯狂Android讲义》《轻量级JavaEE企业应用实战》《疯狂iOS讲义(基础篇)(提高篇)》《疯狂前端开发讲义》《疯狂HTML5/CSS3/JavaScript讲义》《疯狂XML讲义》《经典JavaEE企业应用实战》《Struts2。x专业指南》等著作。其中疯狂Java体系图书均已沉淀多年,赢得极高的市场认同,多次重印,多部著作印刷数量超过10万册,并被多所“985”“211”院校选作教材,部分图书已被翻译成繁体中文版,授权到中国台湾地区。

目录

?
第1章 HTML5简介1
1.1 HTML历史与HTML52
1.1.1 HTML发展历史2
1.1.2 HTML4.01和XHTML3
1.1.3 HTML和XHTML的文档类型定义(DTD)4
1.1.4 从XHTML到HTML55
1.2 HTML5的优势6
1.2.1 解决跨浏览器问题6
1.2.2 部分代替了原来的JavaScript6
1.2.3 更明确的语义支持7
1.2.4 增强了Web应用程序的功能8
1.3 HTML5的基本结构和语法变化8
1.3.1 HTML5的基本结构8
1.3.2 标签不再区分大小写9
1.3.3 元素可以省略结束标签10
1.3.4 支持boolean值的属性11
1.3.5 允许属性值不使用引号12
1.4 本章小结12
第2章 HTML5的常用元素与属性14
2.1 HTML5保留的常用元素15
2.1.1 基本元素15
2.1.2 文本格式相关元素17
2.1.3 语义相关元素19
2.1.4 使用a元素添加超链接和锚点21
2.1.5 列表相关元素24
2.1.6 使用img元素添加图片27
2.1.7 表格相关元素30
2.2 HTML5增强的iframe元素34
2.2.1 HTML5新增的srcdoc属性35
2.2.2 HTML5新增的seamless属性36
2.2.3 HTML5新增的sandbox属性36
2.3 HTML5保留的通用属性40
2.3.1 id、style、class属性40
2.3.2 dir属性41
2.3.3 title属性42
2.3.4 lang属性43
2.3.5 accesskey属性43
2.3.6 tabindex属性43
2.4 HTML5新增的通用属性44
2.4.1 contentEditable属性44
2.4.2 designMode属性46
2.4.3 hidden属性46
2.4.4 spellcheck属性47
2.4.5 contextmenu属性47
2.5 HTML5新增的结构元素48
2.5.1 article与section元素48
2.5.2 header与footer元素51
2.5.3 nav与aside元素52
2.5.4 main元素53
2.5.5 figure与figcaption元素54
2.6 HTML5新增的语义元素55
2.6.1 mark元素55
2.6.2 time元素56
2.6.3 details与summary元素56
2.6.4 ruby、rtc、rb、rt和rp元素57
2.6.5 bdi元素58
2.6.6 wbr元素58
2.6.7 menu和menuitem元素59
2.7 HTML5头部和元信息59
2.7.1 link元素60
2.7.2 base元素62
2.7.3 meta元素62
2.8 HTML5新增的拖放API63
2.8.1 启动拖动63
2.8.2 接受“放”65
2.8.3 DataTransfer对象67
2.8.4 拖放行为69
2.8.5 改变拖放图标70
2.9 本章小结71
第3章 HTML5表单相关的元素和属性72
3.1 HTML原有的表单及表单控件73
3.1.1 form元素73
3.1.2 input元素74
3.1.3 使用label定义标签77
3.1.4 使用button定义按钮78
3.1.5 select与option元素79
3.1.6 HTML5增强的textarea80
3.1.7 fieldset与legend元素82
3.2 HTML5新增的表单属性83
3.2.1 form属性83
3.2.2 formaction属性83
3.2.3 formxxx属性84
3.2.4 autofocus属性85
3.2.5 placeholder属性85
3.2.6 list属性86
3.2.7 autocomplete属性87
3.2.8 label的control属性88
3.2.9 表单元素的labels属性88
3.2.10 文本框的selectionDirection属性89
3.2.11 复选框的indeterminate属性89
3.3 HTML5新增的表单元素90
3.3.1 功能丰富的input元素90
3.3.2 output元素93
3.3.3 meter元素94
3.3.4 progress元素95
3.3.5 keygen元素95
3.4 HTML5新增的客户端校验96
3.4.1 使用校验属性执行校验96
3.4.2 调用checkValidity方法进行校验97
3.4.3 自定义错误提示98
3.4.4 关闭校验99
3.5 本章小结100
第4章 HTML5的绘图支持101
4.1 使用canvas元素102
4.2 绘图103
4.2.1 canvas绘图基础:CanvasRenderingContext2D103
4.2.2 绘制几何图形105
4.2.3 点线模式107
4.2.4 绘制字符串109
4.2.5 设置阴影110
4.2.6 使用路径111
4.2.7 绘制曲线115
4.2.8 绘制位图117
4.3 坐标变换118
4.3.1 使用坐标变换118
4.3.2 坐标变换与路径结合使用119
4.3.3 使用矩阵变换121
4.4 控制叠加风格123
4.5 控制填充风格124
4.5.1 线性渐变124
4.5.2 径向渐变126
4.5.3 位图填充127
4.6 位图处理128
4.6.1 位图裁剪128
4.6.2 像素处理129
4.7 输出位图132
4.8 动画制作133
4.8.1 基于定时器的动画133
4.8.2 基于requestAnimationFrame的动画135
4.9 本章小结136
第5章 HTML5的多媒体支持137
5.1 使用audio和video元素138
5.2 使用JavaScript脚本控制媒体播放141
5.2.1 HTMLAudioElement与HTMLVideoElement支持的方法141
5.2.2 HTMLAudioElement与HTMLVideoElement的属性143
5.3 事件监听144
5.3.1 事件144
5.3.2 监听器145
5.4 track元素146
5.4.1 使用track元素添加字幕146
5.4.2 WebVTT文件简介147
5.4.3 字幕内容的标记148
5.5 本章小结149
第6章 级联样式单与CSS选择器150
6.1 样式单概述151
6.1.1 CSS概述151
6.1.2 CSS的发展历史152
6.2 CSS样式单的基本使用152
6.2.1 引入外部样式文件152
6.2.2 导入外部样式单154
6.2.3 使用内部CSS样式155
6.2.4 使用行内样式156
6.3 CSS选择器158
6.3.1 元素选择器158
6.3.2 属性选择器159
6.3.3 ID选择器161
6.3.4 class选择器162
6.3.5 包含选择器163
6.3.6 子选择器164
6.3.7 CSS3新增的兄弟选择器165
6.3.8 选择器组合166
6.4 伪元素选择器167
6.4.1 内容相关的属性169
6.4.2 插入图像170
6.4.3 只插入部分元素171
6.4.4 配合quotes属性执行插入171
6.4.5 配合counter-increment属性添加编号172
6.4.6 使用自定义编号173
6.4.7 添加多级编号174
6.5 CSS3新增的伪类选择器176
6.5.1 结构性伪类选择器176
6.5.2 UI元素状态伪类选择器186
6.5.3 :target伪类选择器193
6.5.4 :not伪类选择器194
6.6 在脚本中修改显示样式195
6.6.1 随机改变页面的背景色195
6.6.2 动态增加立体效果196
6.7 本章小结197
第7章 字体与文本相关属性198
7.1 字体相关属性199
7.1.1 使用text-shadow添加阴影201
7.1.2 添加多个阴影202
7.1.3 使用font-size-adjust属性微调字体大小203
7.2 CSS3支持的颜色表示方法205
7.3 文本相关属性206
7.3.1 使用white-space控制空白的处理行为208
7.3.2 文本自动换行:word-break209
7.3.3 用word-warp控制长单词或URL地址换行210
7.4 CSS3新增的服务器字体212
7.4.1 使用服务器字体212
7.4.2 定义粗体、斜体字213
7.4.3 优先使用客户端字体214
7.5 本章小结215
第8章 背景、边框和边距相关属性216
8.1 盒模型简介217
8.2 背景相关属性217
8.2.1 背景图片固定219
8.2.2 CSS3新增的background-clip属性220
8.2.3 CSS3新增的background-origin属性221
8.2.4 CSS3新增的background-size属性222
8.2.5 CSS3为background-repeat新增的space和round224
8.2.6 CSS3新增的多背景图片225
8.3 使用渐变背景226
8.3.1 使用linear-gradient设置线性渐变226
8.3.2 使用repeating-linear-gradient设置循环线性渐变230
8.3.3 使用radial-gradient设置径向渐变231
8.3.4 使用repeating-radial-gradient设置循环径向渐变238
8.4 边框相关属性239
8.4.1 CSS3提供的渐变边框241
8.4.2 CSS3提供的圆角边框242
8.4.3 CSS3提供的图片边框244
8.5 使用opacity控制透明度246
8.6 padding和margin相关属性247
8.6.1 内填充相关属性247
8.6.2 外边距相关属性248
8.7 本章小结249
第9章 大小、定位、轮廓相关属性250
9.1 width、height相关属性251
9.1.1 CSS3新增的box-sizing属性252
9.1.2 CSS3新增的resize属性253
9.1.3 CSS3新增的calc函数254
9.2 定位相关属性255
9.3 轮廓相关属性257
9.4 用户界面和滤镜属性258
9.4.1 appearance属性259
9.4.2 使用filter属性应用滤镜260
9.5 本章小结263
第10章 盒模型与布局相关属性264
10.1 盒模型和display属性265
10.1.1 两种最基本的盒类型265
10.1.2 none值和visibility属性267
10.1.3 inline-block类型的盒模型267
10.1.4 inline-table类型的盒模型270
10.1.5 使用table类型的盒模型实现表格271
10.1.6 list-item类型的盒模型272
10.1.7 run-in类型的盒模型273
10.2 对盒添加阴影275
10.2.1 使用box-shadow属性275
10.2.2 对表格及单元格添加阴影277
10.3 布局相关属性278
10.3.1 通过float属性实现多栏布局279
10.3.2 使用clear属性实现换行280
10.3.3 使用overflow设置滚动条282
10.3.4 使用overflow-style控制滚动方式283
10.3.5 使用clip属性控制裁剪284
10.4 CSS3新增的多栏布局285
10.4.1 使用column-width指定栏宽度286
10.4.2 使用column-gap和column-rule控制分栏间隔287
10.4.3 使用column-span设置跨栏288
10.5 使用弹性盒布局289
10.5.1 使用flex类型的盒模型290
10.5.2 通过flex-direction指定盒内元素的排列方向291
10.5.3 使用flex-wrap控制换行293
10.5.4 使用order控制元素显示顺序294
10.5.5 使用flex属性控制子元素的缩放295
10.5.6 使用align-items和align-self控制对齐方式301
10.5.7 使用justify-content控制元素分布302
10.5.8 使用align-content控制行的分布方式304
10.6 本章小结306
第11章 表格、列表相关属性及mediaquery307
11.1 表格相关属性308
11.1.1 使用border-collapse、border-spacing控制单元格边框308
11.1.2 使用caption-side控制表格标题的位置310
11.1.3 使用table-layout控制表格布局311
11.2 列表相关属性313
11.2.1 使用list-style属性控制列表项313
11.2.2 使用list-style属性控制普通元素315
11.3 控制光标的属性316
11.4 mediaquery和响应式布局317
11.4.1 mediaquery语法318
11.4.2 针对浏览器宽度响应式布局319
11.4.3 响应手机浏览器321
11.5 本章小结323
第12章 变形与动画相关属性324
12.1 CSS3提供的变形支持325
12.1.1 4种基本变形326
12.1.2 同时应用多种变形330
12.1.3 指定变换中心点331
12.1.4 使用矩阵变换333
12.2 CSS3新增的3D变换337
12.2.1 perspective属性337
12.2.2 transform-style属性339
12.2.3 backface-visibility属性340
12.3 CSS3提供的Transition动画341
12.3.1 多个属性同时渐变342
12.3.2 指定动画速度344
12.4 CSS3提供的Animation动画345
12.4.1 同时改变多个属性的动画347
12.4.2 鱼眼效果348
12.5 本章小结349
第13章 JavaScript语法详解350
13.1 JavaScript简介351
13.1.1 运行JavaScript352
13.1.2 导入JavaScript文件352
13.1.3 使用script元素的defer推迟脚本执行353
13.1.4 使用script元素的async异步执行脚本354
13.1.5 noscript元素355
13.2 数据类型和变量356
13.2.1 定义变量的方式356
13.2.2 类型转换357
13.2.3 变量作用域358
13.2.4 变量提升361
13.2.5 新增的let变量362
13.2.6 使用const定义常量363
13.3 基本数据类型364
13.3.1 数值类型364
13.3.2 字符串类型369
13.3.3 布尔类型372
13.3.4 undefined和null373
13.3.5 正则表达式374
13.4 复合类型376
13.4.1 对象376
13.4.2 数组376
13.4.3 函数379
13.5 运算符381
13.5.1 赋值运算符381
13.5.2 算术运算符382
13.5.3 位运算符383
13.5.4 加强的赋值运算符385
13.5.5 比较运算符385
13.5.6 逻辑运算符386
13.5.7 三目运算符388
13.5.8 逗号运算符389
13.5.9 void运算符389
13.5.10 typeof和instanceof运算符390
13.6 语句391
13.6.1 语句块391
13.6.2 空语句391
13.6.3 异常抛出语句392
13.6.4 异常捕捉语句393
13.6.5 with语句394
13.7 流程控制395
13.7.1 分支395
13.7.2 while循环397
13.7.3 dowhile循环398
13.7.4 for循环398
13.7.5 forin循环399
13.7.6 break和continue400
13.8 函数403
13.8.1 定义函数的3种方式403
13.8.2 递归函数406
13.8.3 局部变量和局部函数407
13.8.4 函数、方法、对象、变量和类409
13.8.5 函数的实例属性和类属性413
13.8.6 调用函数的3种方式415
13.8.7 函数的独立性416
13.8.8 函数提升418
13.8.9 箭头函数421
13.9 函数的参数处理425
13.9.1 基本类型和复合类型的参数传递425
13.9.2 空参数426
13.9.3 参数类型427
13.10 面向对象429
13.10.1 面向对象的概念429
13.10.2 对象和关联数组430
13.10.3 继承和prototype431
13.10.4 构造器实现伪继承436
13.10.5 使用apply或call实现伪继承437
13.11 创建对象437
13.11.1 使用new关键字调用构造器创建对象438
13.11.2 使用Object直接创建对象438
13.11.3 使用JSON语法创建对象440
13.12 本章小结443
第14章 DOM编程详解444
14.1 DOM模型概述445
14.2 DOM模型和HTML文档446
14.2.1 HTML元素之间的继承关系446
14.2.2 HTML元素之间常见的包含关系447
14.3 访问HTML元素448
14.3.1 根据ID访问HTML元素448
14.3.2 根据CSS选择器访问HTML元素449
14.3.3 利用节点关系访问HTML元素451
14.3.4 访问表单控件453
14.3.5 访问列表框、下拉菜单的选项454
14.3.6 访问表格子元素455
14.4 修改HTML元素456
14.5 增加HTML元素458
14.5.1 创建或复制节点458
14.5.2 添加节点460
14.5.3 为列表框、下拉菜单添加选项460
14.5.4 动态添加表格内容462
14.6 删除HTML元素463
14.6.1 删除节点463
14.6.2 删除列表框、下拉菜单的选项464
14.6.3 删除表格的行或单元格465
14.7 传统的DHTML模型467
14.8 使用window对象469
14.8.1 访问页面URL471
14.8.2 客户机屏幕信息472
14.8.3 弹出新窗口473
14.8.4 确认对话框和输入对话框473
14.8.5 使用定时器474
14.8.6 桌面通知476
14.9 navigator和地理定位479
14.9.1 HTML5新增的geolocation属性480
14.9.2 获取地理位置481
14.9.3 在高德地图上定位483
14.9.4 获取电池信息484
14.10 HTML5增强的HistoryAPI485
14.11 使用document对象490
14.11.1 动态页面491
14.11.2 读写Cookie492
14.12 HTML5新增的浏览器分析493
14.12.1 分析时间性能493
14.12.2 分析导航行为495
14.13 本章小结496
第15章 事件处理机制497
15.1 事件模型的基本概念498
15.2 绑定事件处理函数499
15.2.1 绑定HTML元素属性499
15.2.2 绑定JavaScript对象属性501
15.2.3 addEventListener与attachEvent502
15.3 事件处理函数的执行环境505
15.3.1 事件处理函数中this关键字505
15.3.2 访问事件对象507
15.3.3 使用返回值取消默认行为510
15.3.4 调用顺序510
15.3.5 在代码中触发事件511
15.3.6 事件传播512
15.3.7 取消事件的默认行为517
15.3.8 转发事件519
15.4 事件类型521
15.4.1 事件类型概述521
15.4.2 文档事件523
15.4.3 鼠标滚轮事件525
15.4.4 键盘事件528
15.4.5 触屏事件和移动设备事件529
15.5 本章小结534
第16章 本地存储与离线应用535
16.1 WebStorage536
16.1.1 Storage接口536
16.1.2 使用Storage存储、读取数据538
16.1.3 基于WebStorage的记事本539
16.1.4 存储结构化数据541
16.1.5 监听存储事件543
16.2 Indexed数据库API545
16.2.1 使用IDBFactory打开数据库545
16.2.2 使用IDBDatabase创建对象存储和索引547
16.2.3 使用IDBTransaction(事务)550
16.2.4 使用IDBObjectStore执行CRUD操作551
16.2.5 使用IDBObjectStore根据主键检索数据557
16.2.6 使用IDBIndex根据索引检索数据559
16.2.7 使用复合索引562
16.3 离线应用564
16.3.1 离线应用与浏览器缓存的区别564
16.3.2 构建离线应用564
16.3.3 判断在线状态566
16.3.4 applicationCache对象567
16.3.5 离线应用的事件与监听569
16.4 本章小结571
第17章 文件支持与二进制数据572
17.1 HTML5增强的文件上传域573
17.1.1 FileList对象与File对象573
17.1.2 使用FileReader读取文件内容574
17.2 ArrayBuffer与TypedArray578
17.2.1 TypedArray类579
17.2.2 DataView类581
17.3 Blob类583
17.3.1 使用Blob对象583
17.3.2 存储Blob对象585
17.4 本章小结587
第18章 WebWorker多线程API588
18.1 使用Worker创建多线程589
18.2 与Worker线程进行数据交换591
18.2.1 与Worker线程交换数据591
18.2.2 Worker线程中可用的API593
18.3 Worker线程嵌套594
18.3.1 嵌套Worker线程594
18.3.2 子线程之间的数据交换596
18.4 使用SharedWorker创建共享线程597
18.4.1 SharedWorker的用法598
18.4.2 共享线程实例601
18.5 Promise603
18.5.1 Promise基本用法603
18.5.2 链式调用then方法605
18.5.3 Promise链606
18.5.4 catch的用法607
18.5.5 all和race的用法609
18.6 本章小结611
第19章 客户端通信612
19.1 跨文档消息传递613
19.1.1 postMessage与onmessage613
19.1.2 跨文档消息传递示例614
19.1.3 发送复杂消息616
19.1.4 使用MessageChannel通信618
19.2 使用WebSocket与服务器通信621
19.2.1 WebSocket接口622
19.2.2 使用WebSocket进行通信623
19.2.3 基于WebSocket的多人实时聊天625
19.2.4 发送二进制数据627
19.3 使用Server-SentEventsAPI630
19.3.1 使用EventSource获取数据630
19.3.2 EventSource的生命周期633
19.4 使用Beacon635
19.5 本章小结636
第20章 HTML5的疯狂俄罗斯方块637
20.1 俄罗斯方块简介638
20.2 开发游戏界面639
20.2.1 开发界面布局639
20.2.2 开发游戏界面组件640
20.3 俄罗斯方块的数据模型640
20.3.1 定义数据模型641
20.3.2 初始化游戏状态数据641
20.4 实现游戏逻辑644
20.4.1 处理方块掉落644
20.4.2 处理方块左移648
20.4.3 处理方块右移650
20.4.4 处理方块旋转651
20.4.5 初始化游戏状态653
20.5 本章小结654

前言/序言

W3C于2016年11月1日正式发布了HTML5.1规范,再次引起广大前端开发者对HTML5的极大热情。而Firefox、Opera、Chrome、Safari等主流浏览器的最新版本都能很好地支持该规范,这对广大开发者来说也是很大的利好消息。

疯狂HTML5+CSS3+JavaScript讲义(第2版)》作为《疯狂HTML5/CSS3/JavaScript讲义》的第2版,针对目前最新的HTML5.1规范,对《疯狂HTML5+CSS3+JavaScript讲义(第2版)》内容进行了大量的更新和升级。《疯狂HTML5+CSS3+JavaScript讲义(第2版)》内容包括如下升级:

(1)重写了HTML5增强的<a.../>、<img.../>、<iframe.../>、<textarea.../>等重要元素。

(2)重写了主流浏览器更新支持的<details.../>、<summary.../>、<ruby.../>、<rtc.../>、<rb.../>、<rt.../>和<rp.../>等元素。

(3)重写了HTML5.1重新定义的拖放规范。

(4)新增了HTML5绘图API关于点线模式支持的内容。

(5)新增了多媒体支持的<track.../>元素来添加外挂字幕的内容。

(6)详细介绍了CSS3新增的渐变背景支持。

(7)详细介绍了CSS3最新定义的弹性盒布局,这是CSS3关于布局的最大改进。

(8)新增了关于手机浏览器响应式布局的内容。

(9)新增了CSS3关于3D变换支持的内容。

(10)以ES6标准为基础,介绍了最新的JavaScript语法,包括JavaScript的箭头函数、闭包语句、Promise的重要内容。

(11)深入补充了JavaScript伪继承的常用实现方式。

(12)新增介绍了HTML5最新添加的电池访问API、通知API等内容。

(13)重写了上一版中关于事件机制的相关内容。既针对最新DOM3事件模型做了详细介绍,也兼顾了传统IE事件模型。并补充了目前热门的手机浏览器中触碰事件的处理机制。

(14)新增介绍了HTML5新增的Indexed数据库API。

(15)新增介绍了HTML5规范新增的ArrayBuffer、TypedArray、Blob等二进制支持的相关内容。

(16)新增介绍了HTML5中使用SharedWorker创建共享线程的内容。

(17)补充介绍了WebSocket发送二进制数据的相关知识。

(18)新增介绍了HTML5新增的Server-SentEventsAPI、Beacon等单向网络通信的内容。

疯狂HTML5+CSS3+JavaScript讲义(第2版)》有什么特点

疯狂HTML5+CSS3+JavaScript讲义(第2版)》是一本介绍HTML5、CSS3和JavaScript开发技术的实用图书。《疯狂HTML5+CSS3+JavaScript讲义(第2版)》可分为4个部分。

第1部分:全面介绍了HTML5的全部标签,并且详细介绍了各标签所支持的属性,并为各HTML标签、属性都提供了配套的示例页面,这些内容不仅可以作为学习HTML5的教程,也可以作为日常开发的参考手册。

第2部分:详细介绍了CSS3的绝大部分常用选择器、属性,并为这些选择器、属性提供了示例,方便广大读者参考《疯狂HTML5+CSS3+JavaScript讲义(第2版)》全面、系统地掌握CSS3的功能和用法。这部分内容也可以作为前端开发者的参考手册。

第3部分:重点介绍了JavaScript编程的相关内容,包括JavaScript基础语法、JavaScript函数、JavaScript对象、DOM编程、事件处理、本地存储、Indexed数据库、离线应用、多线程、跨文档消息通信、网络通信编程等知识,这些内容既覆盖了初学者的编程基础,也覆盖了HTML5所支持的新功能,非常适合作为前端开发者的学习教程。

第4部分:综合运用了HTML5的绘图支持、客户端存储、CSS样式、JavaScript编程等内容,开发了一个网页版的“疯狂俄罗斯方块”。这个小游戏既可让读者巩固前面所掌握的各种知识,也可让读者将所学理论运用到实际开发中。

需要说明的是,《疯狂HTML5+CSS3+JavaScript讲义(第2版)》只是一本介绍HTML5、CSS3、JavaScript实际开发的图书,而不是一本关于所谓“设计思想”的书,不要指望学习《疯狂HTML5+CSS3+JavaScript讲义(第2版)》能提高你所谓的“设计思想”,所以奉劝那些希望提高思想的读者不要阅读《疯狂HTML5+CSS3+JavaScript讲义(第2版)》。

疯狂HTML5+CSS3+JavaScript讲义(第2版)》所介绍的知识都很“浅显”,只要读者愿意坐下来、静心阅读《疯狂HTML5+CSS3+JavaScript讲义(第2版)》,并把书中所有示例循序渐进地练习一遍,《疯狂HTML5+CSS3+JavaScript讲义(第2版)》带给你的只是9个字:“看得懂、学得会、做得出”。《疯狂HTML5+CSS3+JavaScript讲义(第2版)》并没有堆砌“深奥”的新名词、堆砌“高深”的思想,《疯狂HTML5+CSS3+JavaScript讲义(第2版)》依然保持了“疯狂Java体系”的一贯风格:思路清晰,语言平实,操作步骤详细。

不管怎样,只要读者在阅读《疯狂HTML5+CSS3+JavaScript讲义(第2版)》时遇到知识上的问题,都可以登录疯狂Java联盟与广大Java学习者交流,笔者也会通过该平台与大家一起交流、学习。

疯狂HTML5+CSS3+JavaScript讲义(第2版)》具有如下几个特点。

1.知识全面,覆盖面广

疯狂HTML5+CSS3+JavaScript讲义(第2版)》全面介绍了HTML5、CSS3、JavaScript的各种相关知识,包括HTML5增强的表单标签、绘图支持、多媒体支持、CSS选择器、CSS盒模型属性、CSS变形和动画相关属性、离线应用、客户端存储、JavaScript多线程、跨文档消息传递、WebSocket等内容。《疯狂HTML5+CSS3+JavaScript讲义(第2版)》基本全面覆盖了W3C官网上已发布的HTML5.1新规范。

2.内容实际,实用性强

疯狂HTML5+CSS3+JavaScript讲义(第2版)》并不局限于枯燥的理论介绍,而是采用了“项目驱动”的方式来讲授知识点。无论是讲解HTML5标签还是CSS3选择器、属性的功能,几乎每个知识点都可找到对应的参考示例。《疯狂HTML5+CSS3+JavaScript讲义(第2版)》最后还提供了“疯狂俄罗斯方块”案例,实用性很强。

3.讲解详细,上手容易

疯狂HTML5+CSS3+JavaScript讲义(第2版)》保持了“疯狂Java体系”的一贯风格:思路清晰,语言平实,操作步骤详细。只要认真阅读《疯狂HTML5+CSS3+JavaScript讲义(第2版)》,把书中所有示例循序渐进地练习一遍,并把《疯狂HTML5+CSS3+JavaScript讲义(第2版)》最后一个案例独立完成,读者就可达到企业前端开发的要求。

疯狂HTML5+CSS3+JavaScript讲义(第2版)》写给谁看

疯狂HTML5+CSS3+JavaScript讲义(第2版)》是一本“从零学习”的HTML5、CSS3、JavaScript专业图书,阅读《疯狂HTML5+CSS3+JavaScript讲义(第2版)》并不需要额外的基础。对于刚刚从事前端开发的新人,《疯狂HTML5+CSS3+JavaScript讲义(第2版)》具有很好的学习价值;对于有一定工作经验的前端工程师,《疯狂HTML5+CSS3+JavaScript讲义(第2版)》具有很高的参考价值。《疯狂HTML5+CSS3+JavaScript讲义(第2版)》也可作为高校、培训机构的教材使用。由于《疯狂HTML5+CSS3+JavaScript讲义(第2版)》是一本专业级的前端开发技术图书,对于那些只想简单了解HTML、CSS的业余人士,不推荐选择《疯狂HTML5+CSS3+JavaScript讲义(第2版)》。

2017-3-10


其他推荐