技术教育社区
www.teccses.org

HTML+CSS+JavaScript入门经典(第3版)

封面

作者:(美)珍妮弗·凯瑞恩//朱莉·C·梅洛尼

页数:615

出版社:人民邮电出版社

出版日期:2021

ISBN:9787115559760

电子书格式:pdf/epub/txt

内容简介

本书是一本介绍HTML、CSS和JavaScript的入门图书。全书分为6个部分,共28课。本书系统、全面地介绍了Web前端的基础知识,并结合大量很好实践,帮助读者循序渐进地学习Web前端设计及开发。
本书第Ⅰ部分包括课~第5课,主要介绍Web的基础知识,涉及Web的基本工作原理,HTML、CSS以及JavaScript概述,基本验证调试代码的方法等内容。第Ⅱ部分包括第6课~第8课,主要介绍HTML网页设计,详细描述了HTML中的字体、文本、列表、表格、链接、颜色、图像和多媒体资源等内容。第Ⅲ部分包括第9课~5课,主要介绍CSS不错网页设计,深入分析目前CSS的概念和使用方法,包括盒子模型、布局、过渡及动画等内容。第Ⅳ部分包括6课~8课,主要介绍响应式Web设计,着重讲述了响应式Web设计、移动优先以及媒体查询等知识。第Ⅴ部分包括9课~第26课,主要介绍动态网站入门,从文档对象入手,深入讲解了JavaScript的相关知识。第Ⅵ部分包括第27课和第28课,主要介绍不错网站功能及管理,描述了Web中的表单以及如何更全面地组织和管理网站。
本书很好适合Web前端开发者,特别是那些想全面学习HTML、CSS和JavaScript的开发者阅读。

作者简介

珍妮弗.凯瑞恩是网页设计和开发方面的专业顾问。她建立并维护了各种规模的网站,从小型单页网站到面向百万级国际用户的大型数据库驱动网站。她从1997年开始在线教授HTML、XML和Web设计,并且是Sams Teach Yourself HTML5 Mobile Application Development、Sams Teach Yourself Responsive Web Design和Sams Teach Yourself Bootstrap的作者。朱莉.C.梅洛尼是一名软件开发经理和技术顾问,生活在华盛顿特区。她编写过多本与Web编程语言和数据库主题相关的图书和若干篇文章,其中包括畅销书Sams Teach Yourself PHP、MySQL and Apache All in One。

本书特色

1.经典系列入门图书全新升级,以循序渐进的方式教会读者最基本的HTML、CSS与JavaScript基础知识。
2.每章内容针对初学者精心设计,1小时轻松阅读学习,24小时彻底掌握关键知识。
2.案例丰富实用,帮助读者即学即用,通过循序渐进的示例引导读者完成常见的Web开发任务。
4.提供配套源代码下载。

目录

第Ⅰ部分 Web入门

第 1课 深入理解Web工作原理 3

1.1 HTML和万维网简史 4

1.2 创建Web内容 4

1.3 理解Web内容传递 5

1.4 选择Web托管提供商 7

1.5 使用多种Web浏览器和设备进行测试 8

1.6 创建示例文件 9

1.7 使用FTP传输文件 10

1.7.1 选择FTP客户端 10

1.7.2 使用FTP客户端 11

1.8 Web服务器放置文件的位置 13

1.8.1 基本文件管理 13

1.8.2 使用索引页 15

1.9 在没有Web服务器的情况下分发内容 15

1.9.1 在本地发布内容 16

1.9.2 在博客上发布内容 16

1.10 测试Web内容的建议 16

1.11 总结 17

1.12 问与答 17

1.13 实践 18

1.13.1 测验 18

1.13.2 答案 18

1.14 练习 19

第 2课 构建HTML文档 20

2.1 准备工作 21

2.2 简单网页入门 21

2.3 网页必要的HTML标签 24

2.4 用段落和换行符组织页面 26

2.5 用标题组织内容 28

2.6 理解语义元素 31

2.7 多种方式使用 35

2.8 理解元素 37

2.9 使用 38

2.10 实现元素 38

2.11 何时使用 39

2.12 有效地使用 40

2.13 总结 41

2.14 问与答 42

2.15 实践 42

2.15.1 测验 42

2.15.2 答案 43

2.16 练习 44

第3课 理解层叠样式表 45

3.1 CSS是如何工作的 45

3.2 基本样式表 47

3.3 CSS样式入门 52

3.3.1 基本布局属性 52

3.3.2 基本格式属性 53

3.4 使用样式类 56

3.5 使用样式ID 57

3.6 内部样式表和内联样式 58

3.7 总结 60

3.8 问与答 61

3.9 实践 61

3.9.1 测验 61

3.9.2 答案 62

3.10 练习 62

第4课 理解JavaScript 63

4.1 Web脚本基础 64

4.1.1 脚本和编程 64

4.1.2 JavaScript概述 64

4.2 JavaScript如何应用于网页 65

4.2.1 使用单独的JavaScript文件 66

4.2.2 理解JavaScript事件 67

4.3 探索JavaScript的功能 68

4.3.1 改进导航 68

4.3.2 表单验证 68

4.3.3 特殊效果 68

4.3.4 远程脚本 68

4.4 使用JavaScript显示时间 69

4.4.1 使用变量存储数据 69

4.4.2 计算结果 70

4.4.3 创建输出 70

4.4.4 将脚本添加到网页 71

4.5 测试脚本 71

4.5.1 修改脚本 72

4.5.2 处理JavaScript错误 73

4.6 总结 75

4.7 问与答 75

4.8 实践 76

4.8.1 测验 76

4.8.2 答案 77

4.9 练习 78

第5课 验证和调试代码 79

5.1 验证HTML和CSS代码 79

5.2 使用开发者工具调试HTML和

CSS代码 81

5.2.1 使用检查器调试HTML代码 83

5.2.2 使用检查器调试CSS代码 88

5.3 使用开发者工具调试JavaScript

代码 92

5.4 总结 96

5.5 问与答 97

5.6 实践 97

5.6.1 测验 97

5.6.2 答案 97

5.7 练习 98

第Ⅱ部分 实用网页设计的组成部分

第6课 使用字体、文本块、列表和表格 101

6.1 使用特殊字符 102

6.2 粗体、斜体和特殊文本格式 105

6.3 调整字体 107

6.4 使用Web字体 111

6.5 对齐页面上的文本 113

6.5.1 使用样式、类和ID属性 113

6.5.2 对齐块级元素 113

6.6 3种类型的HTML列表 115

6.7 列表嵌套 118

6.8 创建简单表格 122

6.9 控制表格大小 126

6.10 表格内的对齐和跨距 128

6.11 带表格的页面布局 131

6.12 使用CSS columns 132

6.13 总结 135

6.14 问与答 136

6.15 实践 137

6.15.1 测验 137

6.15.2 答案 137

6.16 练习 138

第7课 使用外部和内部链接 139

7.1 使用网址 139

7.2 使用页面内锚链接 142

7.2.1 用定位点标识页面中的位置 142

7.2.2 链接到锚点 142

7.3 链接到自己的Web内容 145

7.4 链接到非HTML文件 147

7.5 链接到外部Web内容 148

7.6 链接到电子邮箱地址 149

7.7 在浏览器新窗口中打开链接 150

7.8 为链接赋予标题 151

7.9 使用CSS设置超链接样式 151

7.10 有效地使用链接 154

7.11 总结 155

7.12 问与答 156

7.13 实践 157

7.13.1 测验 157

7.13.2 答案 157

7.14 练习 158

第8课 使用颜色、图像和多媒体 159

8.1 选择颜色的最佳实践 160

8.2 了解网页颜色 161

8.3 使用十六进制值表示颜色 163

8.4 使用RGB和RGBa值表示颜色 164

8.5 使用CSS设置背景、文本和边框颜色 165

8.6 选择图像软件 167

8.7 图像第一知识 168

8.8 准备摄影图像 169

8.8.1 裁剪图像 169

8.8.2 调整图像大小 171

8.8.3 调整图像颜色 172

8.8.4 控制JPEG压缩 173

8.9 创建横幅和按钮 174

8.10 减少或删除颜色以优化图像 175

8.11 创建平铺背景图像 176

8.12 在网页上放置图像 177

8.13 用文本描述图像 179

8.14 指定图像高度和宽度 180

8.15 对齐图像 181

8.15.1 水平图像对齐 181

8.15.2 垂直图像对齐 182

8.16 将图像转换为链接 184

8.17 使用背景图像 187

8.18 使用图像映射 188

8.18.1 为什么不总需要图像映射 188

8.18.2 映射图像中的区域 189

8.18.3 为图像映射创建HTML

代码 189

8.19 链接多媒体文件 190

8.20 嵌入多媒体文件 193

8.20.1 使用元素在网页上

播放视频 193

8.20.2 使用元素进行音频

播放 195

8.21 使用多媒体的附加提示 197

8.22 总结 198

8.23 问与答 199

8.24 实践 200

8.24.1 测验 200

8.24.2 答案 201

8.25 练习 201

第Ⅲ部分 使用CSS进行高级网页设计

第9课 使用外边距、内边距、对齐和

浮动 205

9.1 使用外边距 205

9.2 内边距元素 212

9.3 保持对齐 215

9.4 内容块居中 216

9.5 理解float属性 216

9.6 总结 219

9.7 问与答 219

9.8 实践 219

9.8.1 测验 220

9.8.2 答案 220

9.9 练习 221

第 10课 理解CSS盒子模型和定位 222

10.1 CSS盒子模型 222

10.2 更改盒子模型 225

10.3 整体定位 226

10.4 控制层叠顺序 230

10.5 管理文本流 232

10.6 总结 233

10.7 问与答 233

10.8 实践 234

10.8.1 测验 234

10.8.2 答案 234

10.9 练习 235

第 11课 使用CSS对列表、文本和导航进

行更多操作 236

11.1 HTML列表刷新器 236

11.2 CSS盒子模型如何作用于

列表 237

11.3 放置列表项指示符 240

11.4 使用列表项和CSS创建图像

映射 241

11.5 导航列表与常规列表的区别 245

11.6 使用CSS创建垂直导航 245

11.6.1 设置单层垂直导航的样式 248

11.6.2 设置多级垂直导航的样式 250

11.7 使用CSS创建水平导航 253

11.8 总结 257

11.9 问与答 257

11.10 实践 258

11.10.1 测验 258

11.10.2 答案 258

11.11 练习 259

第 12课 使用现代CSS技术创建

布局 260

12.1 准备进行页面布局 261

12.2 移动设备优先的重要性 261

12.3 理解固定布局 262

12.4 理解流式布局 264

12.5 创建固定/流式混合布局 266

12.5.1 从基本布局结构开始 266

12.5.2 在固定/流式混合布局中定义

两列 267

12.5.3 设置布局的最小和最大宽度 269

12.5.4 处理固定/流式混合布局中的

列高 270

12.6 使用现代CSS布局技术 275

12.6.1 如何使用CSS的display:

table;属性 275

12.6.2 理解CSS弹性盒子布局模型 278

12.6.3 理解CSS网格布局模型 282

12.7 总结 286

12.8 问与答 286

12.9 实践 287

12.9.1 测验 287

12.9.2 答案 288

12.10 练习 288

第 13课 控制背景和边框 289

13.1 了解背景和边框 289

13.2 使用多个边框和背景 290

13.3 使用被遗忘的背景属性 294

13.3.1 选择如何放置背景 294

13.3.2 更改背景大小 295

13.3.3 定位背景图像 295

13.3.4 更改背景滚动 296

13.3.5 交替背景色 298

13.4 使用渐变作为背景 299

13.4.1 创建线性渐变 299

13.4.2 创建放射渐变 300

13.5 将HTML元素的边角

四舍五入 304

13.6 使用图像作为边框 305

13.6.1 定义边框图像:

border-image-source 306

13.6.2 裁剪边框图像:

border-image-slice 306

13.6.3 定义边框图像宽度 307

13.6.4 将边框图像扩展到边框边缘

之外 308

13.6.5 使图像适应边框 308

13.7 理解CSS轮廓 309

13.8 总结 310

13.9 问与答 310

13.10 实践 311

13.10.1 测验 311

13.10.2 答案 311

13.11 练习 312

第 14课 使用CSS转换和过渡 313

14.1 理解CSS二维转换 313

14.1.1 使用transform:rotate();

旋转元素 314

14.1.2 使用transform:scale();

使元素变大/变小 315

14.1.3 使用transform:

translate();移动元素 316

14.1.4 使用transform:skew();

倾斜元素 318

14.1.5 使用多重转换 320

14.2 三维转换元素 321

14.3 使用CSS转换 322

14.4 使用JavaScript触发转换 324

14.5 总结 325

14.6 问与答 326

14.7 实践 326

14.7.1 测验 326

14.7.2 答案 327

14.8 练习 327

第 15课 使用CSS和Canvas制作

动画 328

15.1 理解CSS动画 328

15.1.1 定义关键帧 329

15.1.2 调整动画 331

15.2 使用CSS Canvas 335

15.2.1 如何使用Canvas 336

15.2.2 在Canvas上绘制形状 336

15.2.3 将图像添加到Canvas 341

15.2.4 设置Canvas动画 344

15.3 在CSS动画和Canvas动画之间

选择 347

15.4 总结 347

15.5 问与答 348

15.6 实践 348

15.6.1 测验 348

15.6.2 答案 348

15.7 练习 349

第Ⅳ部分 响应式Web设计

第 16课 理解响应式Web设计的

重要性 353

16.1 响应式Web设计 353

16.1.1 RWD简史 354

16.1.2 为什么我们需要响应式Web

设计 354

16.1.3 为什么响应式Web设计对移动

用户很重要 355

16.2 渐进式增强 356

16.2.1 如何在网站上使用渐进式

增强 356

16.2.2 渐进式增强的好处 358

16.3 为响应式Web设计编写HTML

代码 359

16.3.1 使用每个页面应使用的

标签 359

16.3.2 为Web内容编写标签 360

16.3.3 了解基本属性 360

16.4 验证HTML、CSS和JavaScript

代码 361

16.5 总结 362

16.6 问与答 362

16.7 实践 363

16.7.1 测验 363

16.7.2 答案 363

16.8 练习 364

第 17课 为移动设备设计 365

17.1 移动设备网页设计 365

17.1.1 理解为什么移动设备网页设计

很重要 366

17.1.2 设计有效的移动接口 367

17.2 理解移动优先设计 372

17.2.1 在为计算机设计之前为移动

设备设计 372

17.2.2 如何使用移动优先 372

17.2.3 为什么移动优先有用 373

17.2.4 移动优先为何失效 374

17.2.5 只使用移动设备网页设计或

构建应用程序 374

17.3 使用响应式表格和图像 375

17.3.1 如何使表格响应 375

17.3.2 如何使图像响应 380

17.4 无须媒体查询即可创建响应式

布局 382

17.5 除响应式Web设计外的其他移动

设计方案 384

17.5.1 为什么响应式Web设计可能

不是答案 384

17.5.2 自适应设计和动态服务 385

17.5.3 使用单独的URL或域名 385

17.6 总结 386

17.7 问与答 386

17.8 实践 386

17.8.1 测验 386

17.8.2 答案 387

17.9 练习 387

第 18课 使用媒体查询和断点 388

18.1 什么是媒体查询 388

18.1.1 使用媒体类型 389

18.1.2 使用媒体功能 391

18.2 使用媒体查询表达式 392

18.3 什么是断点 393

18.4 如何在CSS中定义断点 393

18.4.1 为每个设备定义统一的

样式 395

18.4.2 为小屏幕添加特定样式 396

18.4.3 为大屏幕添加媒体查询 397

18.5 最佳断点 398

18.5.1 断点的最佳实践 398

18.5.2 视网膜设备的媒体查询 398

18.6 总结 398

18.7 问与答 399

18.8 实践 399

18.8.1 测验 399

18.8.2 答案 400

18.9 练习 400

第Ⅴ部分 动态网站入门

第 19课 理解动态网站和HTML5应用

程序 403

19.1 了解不同类型的脚本 403

19.2 在HTML文件中引入JavaScript

代码 404

19.3 显示随机内容 406

19.4 理解文档对象模型 409

19.4.1 什么是不引人注目的

JavaScript 410

19.4.2 用DOM使脚本不引人注目 410

19.5 基于用户交互更改图像 412

19.6 关于开发HTML5应用程序的

思考 414

19.7 总结 415

19.8 问与答 415

19.9 实践 415

19.9.1 测验 415

19.9.2 答案 418

19.10 练习 419

第 20课 JavaScript编程入门 420

20.1 基本概念 420

20.1.1 语句 420

20.1.2 使用函数与任务结合 421

20.1.3 变量 422

20.1.4 理解对象 422

20.1.5 条件 423

20.1.6 循环 423

20.1.7 事件句柄 423

20.1.8 哪个脚本先运行 425

20.2 JavaScript语法规则 426

20.2.1 大小写敏感 426

20.2.2 变量、对象和函数名 426

20.2.3 保留字 426

20.2.4 空白 426

20.3 使用注释 426

20.4 JavaScript的最佳实践 427

20.5 了解JSON 428

20.6 总结 428

20.7 问与答 429

20.8 实践 429

20.8.1 测验 429

20.8.2 答案 431

20.9 练习 431

第 21课 使用文档对象模型 432

21.1 理解文档对象模型 432

21.2 使用window对象 433

21.3 使用document对象 433

21.3.1 获取文档信息 434

21.3.2 在文档中写入文本 435

21.3.3 使用链接和锚点 435

21.4 使用history对象 436

21.5 使用location对象 438

21.6 有关DOM结构的详细信息 439

21.6.1 节点 440

21.6.2 父节点和子节点 440

21.6.3 兄弟节点 440

21.7 使用DOM节点 440

21.7.1 节点基本属性 441

21.7.2 节点关系属性 441

21.7.3 文档方法 441

21.7.4 节点方法 442

21.8 创建可定位元素/层 442

21.9 隐藏和显示对象 447

21.10 修改页面中的文本 448

21.11 向页面添加文本 449

21.12 总结 451

21.13 问与答 451

21.14 实践 452

21.14.1 测验 452

21.14.2 答案 453

21.15 练习 454

第 22课 使用JavaScript变量、字符串

和数组 455

22.1 使用变量 456

22.1.1 选择变量名 456

22.1.2 使用局部变量和全局变量 456

22.1.3 对变量赋值 457

22.2 理解表达式和运算符 458

22.2.1 使用JavaScript运算符 458

22.2.2 运算符优先级 459

22.3 JavaScript中的数据类型 459

22.4 在数据类型之间转换 460

22.5 使用字符串对象 461

22.5.1 创建一个字符串对象 461

22.5.2 赋值 461

22.5.3 计算字符串的长度 463

22.5.4 转换字符串的大小写 463

22.6 使用子字符串 463

22.6.1 使用字符串的一部分 464

22.6.2 获得单个字符 464

22.6.3 查找子字符串 465

22.7 使用数值数组 465

22.7.1 创建数值数组 465

22.7.2 理解数组长度 466

22.7.3 访问数组元素 466

22.8 使用字符串数组 467

22.8.1 创建字符串数组 467

22.8.2 拆分字符串 467

22.8.3 对字符串数组排序 468

22.9 对数值数组排序 468

22.10 使用函数 470

22.10.1 定义函数 470

22.10.2 调用函数 472

22.10.3 返回值 473

22.11 介绍对象 475

22.11.1 创建对象 475

22.11.2 理解方法 476

22.12 使用对象简化脚本 476

22.12.1 定义对象 476

22.12.2 定义对象方法 477

22.12.3 创建对象实例 478

22.13 扩展内置对象 480

22.14 使用Math对象 482

22.14.1 舍入 482

22.14.2 生成随机数 482

22.14.3 其他Math方法 483

22.15 使用Math方法 483

22.16 使用日期 485

22.16.1 创建Date对象 485

22.16.2 设置Date值 486

22.16.3 读取Date值 486

22.16.4 使用时区 486

22.16.5 在日期格式之间转换 487

22.17 总结 487

22.18 问与答 487

22.19 实践 488

22.19.1 测验 488

22.19.2 答案 490

22.20 练习 490

第 23课 用条件和循环控制流 491

23.1 if语句 492

23.1.1 条件运算符 492

23.1.2 条件与逻辑运算符组合 493

23.1.3 else关键字 494

23.2 使用简写条件表达式 494

23.3 使用if和else测试多个条件 495

23.3.1 HTML文件 496

23.3.2 JavaScript文件 496

23.4 使用switch表示多个条件 497

23.5 使用for循环 499

23.6 使用while循环 501

23.7 使用do…while循环 501

23.8 使用循环 502

23.8.1 创建无限循环 502

23.8.2 从循环中退出 502

23.8.3 继续循环 503

23.9 通过对象属性循环 503

23.10 总结 506

23.11 问与答 506

23.12 实践 506

23.12.1 测验 506

23.12.2 答案 508

23.13 练习 508

第 24课 响应事件和使用window

对象 509

24.1 理解事件处理程序 510

24.1.1 对象和事件 510

24.1.2 创建事件处理程序 510

24.1.3 用JavaScript定义事件处理

程序 511

24.1.4 支持多个事件处理程序 511

24.1.5 利用event对象 513

24.2 使用鼠标事件 514

24.2.1 mouseover和mouseout 514

24.2.2 mouseup、mousedown和

click 514

24.3 使用键盘事件 517

24.4 使用load和unload事件 519

24.5 使用click事件更改

元素的样式 520

24.6 用对象控制窗口 526

24.6.1 window对象的属性 526

24.6.2 创建新窗口 527

24.6.3 打开和关闭窗口 528

24.7 移动和调整窗口大小 530

24.8 使用超时 531

24.9 显示对话框 533

24.10 总结 535

24.11 问与答 535

24.12 实践 536

24.12.1 测验 536

24.12.2 答案 537

24.13 练习 538

第 25课 JavaScript最佳实践 539

25.1 编写最佳实践脚本 539

25.1.1 避免过度使用JavaScript 540

25.1.2 内容、呈现和行为 540

25.1.3 网页加载速度 541

25.1.4 优雅降级 541

25.1.5 渐进式增强 542

25.1.6 添加事件处理程序 542

25.1.7 Web标准:避免指定浏览器 544

25.1.8 正确处理错误 544

25.1.9 注释代码 545

25.1.10 确保可用性 546

25.1.11 确保可访问性 546

25.1.12 从设计模式中获益 547

25.1.13 尽可能复用代码 547

25.2 获取浏览器信息 548

25.2.1 显示浏览器信息 548

25.2.2 处理“不诚实”的浏览器 550

25.3 跨浏览器脚本 551

25.3.1 功能感知 551

25.3.2 处理浏览器错误 552

25.4 支持禁用JavaScript的浏览器 552

25.4.1 使用标签 553

25.4.2 保持JavaScript可选 553

25.4.3 避免错误 554

25.5 创建一个不引人注目的脚本 554

25.6 总结 556

25.7 问与答 557

25.8 实践 557

25.8.1 测验 557

25.8.2 答案 559

25.9 练习 559

第 26课 使用第三方JavaScript库和

框架 560

26.1 使用第三方JavaScript库 560

26.1.1 jQuery 561

26.1.2 Prototype 563

26.1.3 script.aculo.us 563

26.1.4 其他流行的第三方

JavaScript库 564

26.2 使用第三方库添加JavaScript

效果 564

26.3 使用JavaScript框架 566

26.4 总结 567

26.5 问与答 568

26.6 实践 568

26.6.1 测验 568

26.6.2 答案 570

26.7 练习 570

第Ⅵ部分 高级网站功能及管理

第 27课 使用基于Web的表单 573

27.1 HTML表单如何工作 573

27.2 创建表单 574

27.3 接受文本输入 579

27.4 表单数据 580

27.5 标记表单数据 580

27.6 分组表单元素 581

27.7 浏览表单输入控件 582

27.7.1 复选框 582

27.7.2 单选按钮 584

27.7.3 选择列表 585

27.7.4 文本字段、文本区域和其他

输入类型 587

27.7.5 向文本字段添加数据 588

27.8 使用HTML5表单验证 589

27.9 提交表单数据 591

27.9.1 理解元素 592

27.9.2 使用JavaScript处理表单

事件 593

27.10 使用JavaScript访问表单

元素 593

27.11 总结 595

27.12 问与答 597

27.13 实践 597

27.13.1 测验 597

27.13.2 答案 599

27.14 练习 600

第 28课 组织和管理网站 601

28.1 单个页面 602

28.2 组织一个简单的网站 603

28.3 组织更大的网站 604

28.4 为搜索引擎优化网站 606

28.4.1 创建有趣的内容 607

28.4.2 保持导航可用 607

28.4.3 为移动设备编码 607

28.5 编写可维护代码 608

28.5.1 用注释记录代码 608

28.5.2 为了清晰,缩进代码 610

28.6 关于版本控制的思考 610

28.7 使用HTML和CSS框架 612

28.8 总结 612

28.9 问与答 613

28.10 实践 613

28.10.1 测验 613

28.10.2 答案 615

28.11 练习 615

下载地址

立即下载

(解压密码:www.teccses.org)

Article Title:《HTML+CSS+JavaScript入门经典(第3版)》
Article link:https://www.teccses.org/1261311.html