《HTML+CSS+JavaScript入門經典》是人民郵電出版社出版圖書。
基本介紹
- 中文名:HTML+CSS+JavaScript入門經典
- 作者:[美] 珍妮弗·凱瑞恩(Jennifer Kyrnin)
- 譯者:胡久林
- 出版時間:2021年6月1日
- 出版社:人民郵電出版社
- 頁數:615 頁
- ISBN:9787115559760
- 開本:16 開
- 裝幀:平裝
內容簡介
本書是一本介紹HTML、CSS和JavaScript的入門圖書。全書分為6個部分,共28課。本書系統、全面地介紹了Web前端的基礎知識,並結合大量Z佳實踐,幫助讀者循序漸進地學習Web前端設計及開發。
本書第Ⅰ部分包括第1課~第5課,主要介紹Web的基礎知識,涉及Web的基本工作原理,HTML、CSS以及JavaScript概述,基本驗證調試代碼的方法等內容。第Ⅱ部分包括第6課~第8課,主要介紹HTML網頁設計,詳細描述了HTML中的字型、文本、列表、表格、連結、顏色、圖像和多媒體資源等內容。第Ⅲ部分包括第9課~第15課,主要介紹CSS高級網頁設計,深入分析目前CSS的概念和使用方法,包括盒子模型、布局、過渡及動畫等內容。第Ⅳ部分包括第16課~第18課,主要介紹回響式Web設計,著重講述了回響式Web設計、移動優先以及媒體查詢等知識。第Ⅴ部分包括第19課~第26課,主要介紹動態網站入門,從文檔對象入手,深入講解了JavaScript的相關知識。第Ⅵ部分包括第27課和第28課,主要介紹高級網站功能及管理,描述了Web中的表單以及如何更全面地組織和管理網站。
本書非常適合Web前端開發者,特別是那些想全面學習HTML、CSS和JavaScript的開發者閱讀。
目錄
第Ⅰ部分 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