內容簡介
《HTML5+CSS3+JavaScript 網頁設計入門與應用》從網站基礎開始,結合大量案例,全面、翔實地介紹了使用HTML5+CSS3+JavaScript開發Web前端頁面的具體方法與步驟,引導讀者從零開始,一步步掌握Web開發的全過程。本書通過一個個鮮活、典型的實例來講解每個語法,力求達到理論知識與實踐操作完美結合的效果。
《HTML5+CSS3+JavaScript 網頁設計入門與應用》共分為15章,主要包括HTML入門、HTML5新增布局元素、HTML5表單驗證、文件上傳、繪圖和多媒體、數據存儲、CSS3新增選擇器、CSS3布局屬性和動畫效果、JavaScript基礎語法、事件處理和DOM操作等內容。最后一章通過打地鼠、貪吃蛇、小貓笑臉和圖片輪播4個綜合案例,介紹了Web前端設計的完整過程。
《HTML5+CSS3+JavaScript 網頁設計入門與應用》可作為普通高校計算機及相關專業教材、高職高專教材,也可供從事網頁設計與制作、網站開發、網頁編程等行業人員參考閱讀。
前言
隨著網絡帶寬的飛速提升和網絡技術的不斷發展,獲取數據的方式也比以前快捷得多,而網頁是最重要的表現形式之一。這幾年雖然新技術層出不窮,并且日新月異,但有一點是肯定的,不管是采用什么技術設計的網站,用戶在客戶端通過打開瀏覽器看到的網頁都是靜態網頁,都是由HTML、JavaScript 和CSS 技術構成的,所以如果想從事網頁設計或從事網站管理相關工作,就必須學習HTML、JavaScript 和CSS 技術,哪怕只是簡單地了解,因為HTML、JavaScript 和CSS 技術是網頁制作技術的基礎和核心。
本書緊密圍繞網頁設計師在制作網頁過程中的實際需要和應該掌握的技術,全面介紹了使用HTML、CSS、JavaScript 進行網頁設計和制作各方面的內容和技巧。本書在講解時采用了最新的HTML5 規范和CSS3 標準,并以Chrome 瀏覽器為主要測試環境。
本書內容
全書共分15 章,主要內容如下。
第1 章 初步認識HTML5 和CSS3。本章首先帶領讀者了解網頁設計的基礎知識和Web標準布局知識,然后介紹從HTML 到XHTML 再到HTML5 的過渡,之后對HTML5 的語法做了詳細介紹,最后介紹了CSS3 的優缺點、新增特性以及性能測試方法。
第2 章 HTML5 網頁結構。本章主要介紹HTML5 中新增的與網頁結構相關的元素,包括頭部元素、結構元素、語義元素、節點元素、交互元素以及新增全局屬性。
第3 章 HTML5 表單應用。本章主要介紹HTML5 中新增的表單輸入類型、表單屬性、表單元素和表單驗證方式。
第4 章 HTML5 多媒體應用。本章主要介紹使用HTML5 新增的video 元素和audio 元素播放視頻和音頻。
第5 章 HTML5 繪圖應用。本章主要介紹使用canvas 元素繪制各種圖形,如繪制三角形、文本、漸變和陰影等,以及操作圖形的各種方法,如平移、縮放和坐標轉換等。
第6 章 HTML5 數據存儲。本章主要介紹HTML5 中新增的兩種數據存儲方式,即Web存儲和本地數據庫存儲。
第7 章 文件和離線應用。本章將從文件和離線兩個方面展開對HTML5 新特性的講解,主要包括允許選擇多個文件、讀取文件的信息和內容、實現文件上傳以及判斷是否在線等。
第8 章 HTML5 高級開發。本章從4 個方面講解HTML5 的高級特性,分別是拖放操作、跨文檔通信、多線程和地理位置。
第9 章 CSS3 選擇器。本章主要介紹CSS3 新增選擇器的使用,如屬性選擇器、偽類選擇器和偽對象選擇器等。
第10 章 CSS3 新增的基本屬性。本章主要介紹CSS3 中新增加的背景、邊框、字體、顏色等相關屬性,例如與背景有關的background-clip、background-size、background-origin 屬性,與邊框有關的border-radius、box-shadow、border-image 屬性等。
第11 章 變形、過渡和動畫。本章主要介紹CSS3 的動畫功能,包括變形效果、過渡效果和動畫幀等。
第12 章 CSS3 新增的高級屬性。本章主要介紹CSS3 中新增加的其他屬性,例如多列布局屬性、盒模型布局屬性、漸變屬性等。
第13 章 JavaScript 腳本編程快速入門。本章主要介紹JavaScript 的基礎知識,包括JavaScript 語言的語法規則、運算符、流程控制語句、對話框語句、函數以及常用對象的用法等內容。
第14 章 JavaScript 事件和DOM。本章主要介紹原始事件模型和標準事件模型,以及DOM 操作節點的方法,如遍歷、插入、復制、替換和刪除等。
第15 章 綜合案例。本章通過打地鼠、貪吃蛇、小貓笑臉和圖片輪播4 個綜合案例,介紹了Web 前端設計的完整過程。
本書特色
本書采用大量的實例進行講解,力求通過實際操作使讀者更容易地制作前端頁面、設計頁面樣式和操作頁面腳本。本書難度適中,內容由淺入深,實用性強,覆蓋面廣,條理清晰。
知識點全
本書緊緊圍繞前端的HTML5、CSS3 和JavaScript 展開講解,具有很強的邏輯性和系統性。
實例豐富
各章實例短小卻又能體現出知識點,讓讀者很輕松地學習,并能靈活地應用到實際的軟件項目中。
應用廣泛
對于精選案例,給出了詳細步驟,結構清晰簡明,分析深入淺出,而且有些程序能夠直接在項目中使用,避免讀者進行二次開發。
基于理論,注重實踐
本書在講述理論知識的過程中,在合適位置安排了綜合應用實例或者小型應用程序,將理論應用到實踐中,可以提高讀者的實際應用能力,鞏固開發基礎知識。
貼心的提示
為了便于讀者閱讀,全書還穿插著一些技巧、提示等小貼士,體例約定如下。
提示:通常是一些貼心的提醒,或者是讓讀者加深印象,或者是提供建議,或者是解決問題的方法。
注意:提出學習過程中需要特別注意的一些知識點和內容,或者相關信息。
技巧:通過簡短的文字,指出知識點在應用時的一些小竅門。
讀者對象
本書內容簡明易懂,有豐富的案例和習題,既可作為在校大學生學習使用前端網頁設計的參考資料,也適合作為高等院校相關專業的教學參考書,還可以作為非計算機專業學生學習HTML+CSS+JavaScript 的參考書。
本書由劉愛江、靳智良編著,參與本書編寫及設計工作的還有鄭志榮、侯艷書、劉利利、侯政洪、肖進、李海燕、侯政云、祝紅濤、崔再喜、賀春雷等,在此表示感謝。在本書的編寫過程中,我們力求精益求精,但難免存在一些不足之處,敬請廣大讀者批評指正。
編 者
目錄
第1章 初步認識HTML5和CSS31.1 認識網頁和網站 21.1.1 網頁 21.1.2 網站 31.1.3 網站制作流程 31.1.4 網頁設計流程 41.1.5 發布站點 41.2 Web標準布局介紹 51.2.1 當前的Web開發標準 51.2.2 為什么使用Web標準 51.2.3 CSS布局標準 61.3 HTML與HTML5 71.3.1 HTML的發展歷史 71.3.2 HTML 4.01和XHTML 81.3.3 HTML和XHTML文檔類型定義 91.3.4 從XHTML到HTML5 111.3.5 HTML5的優勢 111.4 HTML5語法的變化 131.4.1 DOCTYPE聲明 131.4.2 命名空間聲明 131.4.3 編碼類型 141.4.4 文檔媒體類型 151.4.5 HTML5兼容HTML 151.5 實踐案例:瀏覽器HTML5性能測試 181.6 CSS3簡介 191.6.1 什么是CSS3 201.6.2 CSS3的優缺點 201.6.3 CSS3的新增特性 211.7 實踐案例:瀏覽器CSS3性能測試 241.8 練習題 25第2章 HTML5網頁結構2.1 認識html根元素 282.2 文檔頭部元素 282.3 結構元素 312.3.1 header元素 312.3.2 article元素 332.3.3 section元素 342.3.4 aside元素 352.3.5 footer元素 362.4 節點元素 362.4.1 nav元素 362.4.2 hgroup元素 372.4.3 address元素 382.5 語義元素 392.5.1 mark元素 392.5.2 cite元素 402.5.3 time元素 402.5.4 wbr元素 412.5.5 ruby、rt和rp元素 412.6 交互元素 412.6.1 meter元素 412.6.2 progress元素 432.6.3 details元素 442.6.4 summary元素 452.7 全局屬性 452.7.1 hidden屬性 462.7.2 contenteditable屬性 462.7.3 spellcheck屬性 472.8 實踐案例:設計旅游網站首頁 482.9 練習題 53第3章 HTML5表單應用3.1 重新認識HTML表單 563.1.1 表單簡介 563.1.2 表單標記 563.1.3 基本表單元素 573.2 新增輸入類型 583.2.1 url類型 583.2.2 number類型 593.2.3 email類型 603.2.4 range類型 613.2.5 datepickers類型 623.2.6 color類型 643.2.7 tel類型 643.2.8 search類型 653.3 新增屬性 653.3.1 表單類屬性 653.3.2 輸入類屬性 673.4 表單元素 733.4.1 datalist元素 733.4.2 keygen元素 743.4.3 output元素 753.4.4 optgroup元素 763.5 表單驗證 773.5.1 自動驗證 773.5.2 顯式驗證 793.5.3 自定義驗證 803.5.4 取消驗證 813.6 實踐案例:設計用戶錄入表單 813.7 練習題 87第4章 HTML5多媒體應用4.1 多媒體簡介 904.1.1 多媒體編解碼器 904.1.2 視頻格式 904.1.3 音頻格式 914.2 播放視頻 914.2.1 video元素的基礎用法 924.2.2 video元素方法 944.2.3 video元素事件 954.3 播放音頻 974.3.1 audio元素的基礎用法 974.3.2 audio元素事件 984.4 實踐案例:實現HTML5網頁視頻播放器 994.5 練習題 105第5章 HTML5繪圖應用5.1 認識canvas元素 1085.1.1 canvas簡介 1085.1.2 創建canvas元素 1085.1.3 實踐案例:判斷瀏覽器是否支持canvas元素 1095.2 繪制簡單圖形 1105.2.1 繪制矩形 1105.2.2 繪制直線 1135.2.3 繪制圓形 1165.2.4 實踐案例:繪制三角形 1195.2.5 保存和恢復圖形 1215.2.6 輸出圖形 1235.3 繪制文本 1245.3.1 繪制普通文本 1245.3.2 繪制陰影文本 1265.4 繪制曲線 1285.4.1 二次方貝塞爾曲線 1285.4.2 三次方貝塞爾曲線 1285.5 變換圖形 1295.5.1 坐標變換 1295.5.2 矩陣變換 1335.5.3 組合圖形 1355.5.4 線性漸變 1385.5.5 徑向漸變 1395.6 使用圖像 1415.6.1 繪制圖像 1415.6.2 平鋪圖像 1435.6.3 裁剪和復制圖像 1455.7 實踐案例:制作圖像黑白和反轉效果 1465.8 練習題 148第6章 HTML5數據存儲6.1 Web存儲簡介 1526.1.1 Web存儲和Cookie存儲 1526.1.2 sessionStorage對象 1526.1.3 localStorage對象 1546.2 操作本地數據 1556.2.1 保存數據 1566.2.2 讀取數據 1576.2.3 清空數據 1596.2.4 遍歷數據 1596.3 實踐案例:實現工程管理模塊 1626.4 操作本地數據庫數據 1676.4.1 創建數據庫 1676.4.2 執行SQL語句 1686.5 實踐案例:查看學生列表 1706.6 練習題 171第7章 文件和離線應用7.1 操作文件 1747.1.1 獲取文件信息 1747.1.2 限制文件類型 1757.2 實踐案例:文件上傳 1777.3 FileReader接口 1787.3.1 FileReader接口簡介 1797.3.2 讀取文本文件內容 1797.3.3 監聽讀取事件 1817.3.4 處理讀取異常 1837.4 實踐案例:預覽圖片 1847.5 離線應用 1867.5.1 離線Web應用程序概述 1867.5.2 manifest文件 1867.5.3 applicationCache對象 1907.6 練習題 195第8章 HTML5高級開發8.1 拖放功能 1988.1.1 拖放API簡介 1988.1.2 dataTransfer對象 1998.2 實踐案例:拖放式選擇員工 2028.3 跨文檔消息通信 2058.4 本地多線程 2078.4.1 Worker對象簡介 2078.4.2 線程和JavaScript交互 2108.4.3 線程嵌套 2108.4.4 實踐案例:線程和JSON交互 2128.5 獲取地理位置 2148.5.1 地圖API簡介 2158.5.2 Position對象 2168.6 練習題 218第9章 CSS3選擇器9.1 CSS選擇器的分類 2229.2 屬性選擇器 2269.2.1 E[att^=“val”] 2269.2.2 E[att$=“val”] 2279.2.3 E[att*=“val”] 2279.2.4 實踐案例:設計顏色選擇器 2279.3 偽類選擇器 2299.3.1 E:last-child選擇器 2299.3.2 E:only-child選擇器 2309.3.3 E:nth-child(n)選擇器 2319.3.4 E:nth-last-child(n)選擇器 2339.3.5 E:root選擇器 2339.3.6 E:not(s)選擇器 2349.3.7 E:empty選擇器 2359.3.8 E:target選擇器 2369.3.9 實踐案例:單擊鏈接顯示具體內容 2379.4 偽對象選擇器 2389.4.1 E::selection選擇器 2389.4.2 E::placeholder選擇器 2399.4.3 已修改的選擇器 2399.4.4 實踐案例:選擇器和content屬性結合插入內容 2409.5 兄弟選擇器 2439.6 練習題 244第10章 CSS3新增的基本屬性10.1 新增基本屬性 24810.1.1 文本屬性 24810.1.2 字體屬性 24910.1.3 顏色屬性 25010.1.4 邊框屬性 25110.1.5 背景屬性 25110.1.6 實踐案例:用JS判斷瀏覽器是否支持某屬性 25110.2 設置文本樣式 25210.2.1 文本換行設置 25210.2.2 文本對齊方式 25610.2.3 文本的單個陰影 25610.2.4 文本的多個陰影 25910.2.5 實踐案例:制作火焰字 26010.3 設置邊框樣式 26110.3.1 邊框圓角屬性 26110.3.2 圖形填充邊框 26410.3.3 邊框陰影效果 26710.4 設置背景樣式 26910.4.1 background-size屬性 27010.4.2 background-origin屬性 27110.4.3 background-clip屬性 27210.5 實踐案例:制作太極圖 27310.6 練習題 274第11章 變形、過渡和動畫11.1 CSS3的變形屬性 27811.1.1 基本變形之平移 27811.1.2 基本變形之縮放 28011.1.3 基本變形之旋轉 28011.1.4 基本變形之傾斜 28111.1.5 實踐案例:制作個性圖片墻 28311.1.6 指定變形中心點 28411.2 CSS3的過渡屬性 28611.2.1 過渡屬性概述 28611.2.2 單個屬性實現過渡 28711.2.3 多個屬性同時過渡 28711.2.4 實踐案例:鼠標懸浮特效的過渡功能 28911.3 CSS3的動畫屬性 29111.3.1 了解animation屬性 29111.3.2 @keyframes動畫幀 29311.3.3 同時改變多個屬性的動畫 29511.3.4 實踐案例:繪制旋轉的太極圖案 29511.4 實踐案例:動態復古時鐘 29611.5 練習題 299第12章 CSS3新增的高級屬性12.1 多列布局屬性 30212.1.1 多列布局屬性列表 30212.1.2 設置顯示列的寬度 30212.1.3 設置顯示的固定列 30312.1.4 設置顯示列的樣式 30412.1.5 設置各列間的間距 30512.2 彈性盒模型屬性 30512.2.1 flex布局屬性 30612.2.2 flex-direction屬性 30712.2.3 flex-wrap屬性 30812.2.4 justify-content屬性 30912.2.5 其他屬性簡述 31112.2.6 實踐案例:用flex盒模型實現三欄布局 31412.3 漸變屬性 31512.3.1 線性漸變 31612.3.2 徑向漸變 31912.3.3 重復漸變 32312.3.4 實踐案例:用線性漸變實現圖片閃光劃過的效果 32412.3.5 實踐案例:用徑向漸變制作一張優惠券 32512.3.6 實踐案例:用重復漸變制作記事本紙張效果 32612.4 練習題 327第13章 JavaScript腳本編程快速入門13.1 JavaScript語言簡介 33013.1.1 JavaScript簡介 33013.1.2 JavaScript與Java的關系 33013.1.3 JavaScript語法規則 33113.2 編寫JavaScript程序 33213.2.1 集成JavaScript程序 33213.2.2 使用外部JavaScript文件 33313.2.3 注意事項 33413.3 JavaScript腳本語法 33513.3.1 數據類型 33513.3.2 變量與常量 33613.3.3 運算符 33713.4 腳本控制語句 34013.4.1 if條件語句 34013.4.2 switch條件語句 34213.4.3 while循環語句 34313.4.4 do while循環語句 34413.4.5 for循環語句 34413.4.6 for in循環語句 34513.4.7 對話框語句 34513.5 函數 34813.5.1 系統函數 34813.5.2 自定義函數 35013.6 常用對象 35113.6.1 Array對象 35113.6.2 Document對象 35213.6.3 Window對象 35313.7 實踐案例:長方體幾何計算 35413.8 練習題 355第14章 JavaScript事件和DOM14.1 事件概述 35814.1.1 事件簡介 35814.1.2 指定事件 35814.2 原始事件模型 35914.2.1 事件類型 36014.2.2 事件處理 36114.2.3 使用事件返回值 36214.3 標準事件模型 36414.3.1 事件傳播 36414.3.2 注冊事件處理程序 36514.4 常用事件 36614.4.1 鍵盤事件 36614.4.2 鼠標事件 36714.4.3 頁面事件 36814.5 DOM簡介 37014.5.1 HTML DOM中的節點樹 37014.5.2 DOM核心接口 37014.6 實踐案例:使用DOM操作節點 37314.6.1 訪問節點 37314.6.2 遍歷節點 37614.6.3 操作屬性節點 37914.6.4 創建和插入節點 38214.6.5 復制節點 38514.6.6 替換節點 38514.6.7 刪除節點 38714.7 練習題 387第15章 綜合案例15.1 打地鼠游戲 39015.1.1 打地鼠游戲簡介 39015.1.2 界面設計 39115.1.3 實現腳本 39215.2 經典貪吃蛇游戲 39515.2.1 貪吃蛇游戲簡介 39515.2.2 頁面設計 39515.2.3 腳本實現 39715.3 繪制呆萌的小貓笑臉 40115.3.1 效果展示 40215.3.2 靜態頁面 40215.3.3 樣式代碼 40315.4 圖片輪播效果展示 40715.4.1 效果展示 40715.4.2 靜態頁面 40815.4.3 樣式代碼 408練習題答案