1.1 HTML 5 新元素
- Header - 可表示介紹內容的容器,或者一組導航鏈接。
- Nav - 標籤的內容主要用於導航。
- Article - 標識頁面中的主體內容。以博客爲例,每個帖子都是一個重要內容,可採用 Article 標識每一個帖子。
- Section - 用於標記頁面上的重要的部分。該標記類似於將文檔分爲多個章節。
- Aside - 表示和頁面主要內容有關,但不是頁面的一部分,經常表示一個相關鏈接。
- Footer - 和 Header 相對,表示文檔或者章節的頁腳,比如版權信息放在此標記中。
傳統 DIV 方式佈局
<body>
<!-- 頁頭 -->
<div class='header'></header>
<!-- 導航 -->
<div class='nav'></div>
<!-- 主體內容 -->
<div class='main'>
<!-- 文章 -->
<div class='article'>
<!-- 節 -->
<div class='section'></div>
</div>
<!-- 邊欄 -->
<div class='sidebar'></div>
</div>
<!-- 頁腳 -->
<div class='footer'></div>
</body>
使用 HTML 5 新元素實現佈局
<body>
<header></header>
<nav></nav>
<div>
<article>
<section></section>
</article>
<aside></aside>
</div>
<footer></footer>
</body>
1.2 表單的增強應用
在 HTML 4 中,提供了一些簡單的表單元素應對基本輸入。對於特定類型的輸入,比如日期時間的輸入,交互體驗無法滿足需求。因此,爲了得到更好的效果,只能使用 javascript 編寫組件實現。在 HTML 5 中得到了完善,增加了新的表單元素來提供更多的輸入類型。
(1)Input 的 Type 屬性擴充
- search - 呈現一個搜索框。
- tel - 輸入電話號碼,可以採用 pattern 和 maxlength 來限定輸入合適
<input type='tel' name='tel' value="" placeholder="請輸入手機號碼" pattern='1[3-8][0-9]{9}' title='請輸入11位手機號'>
- url - 輸入 URL 地址。
- email - 輸入電子郵箱地址。
- date - 輸入日期。
- color - 輸入顏色。
- number - 輸入數字。
- range - 滑塊輸入
(2)Input 通過屬性進行表單驗證
- required - 標記當前元素爲必填。
- pattern - 採用正則表達式驗證表單輸入。
(3)Input 元素的其他有用屬性
- autofocus - 當頁面加載時,自動聚焦到當前的 input 元素。
- form - 將 input 元素和特定的 Form 表單關聯。
- placeholder - 輸入佔位符,提示用戶輸入。
(4)HTML 5 新元素 和 特殊屬性 contenteditable
- progress - 元素表示進度條。
<progress value='30' max='100'></progress>
- meter - 元素表示標尺。最大值 max 默認爲 1。
<meter value="3" min="0" max="10">3/10</meter>
<meter value="0.6">60%</meter>
- HTML 5 特殊屬性 contenteditable,通過該屬性,可以讓一個普通元素可編輯。
<p contenteditable="true">這裏的內容式可編輯的</p>
1.3 使用音頻和視頻
(1)audio - 音頻標籤
<audio controls>
<source src="vincent.mp3" />
<source src="vincent.ogg" />
您的瀏覽器不支持 audio 標籤
</audio>
audio 控制元素行爲的屬性如下
- controls - 該屬性控制,是否顯示標準的音頻空間。
- autoplay - 是否自動播放。默認 false。
- loop - 是否循環播放。默認 false。
- preload - 預先加載的方式。有三種情況:none 表示不預加載;metadata 只加載音頻的元數據;auto 表示預加載整個音頻。默認 auto。
- volum - 音量,值在 0 - 1 之間
播放和暫停音頻的方法
var audio = document.getElementById('audio')
audio.play() // 播放
audio.pause() // 暫停
(2)video - 視頻標籤
currentTime 控制開始播放的時間
<video width="400" height="300" controls currentTime='5'>
<source src="dizzy.mp4#t=5" type="video/mp4" /> <!-- 從 5s 開始 -->
<source src="dizzy.ogv#t=5,10" type="video/ogg" /> <!-- 從 5s 到 10s -->
<source src="dizzy.webm#t=,15" type="video/webm"> <!-- 到 15s 結束 -->
<p>您的瀏覽器不支持 HTML 5 視頻</p>
</video>