現在做前端,如果說自己不會h5,你很有可能被你的客戶嘲笑,說什麼最新技術都不會!h5其實沒什麼,只不過是html技術的進一步發展,主要是增加了一些新的元素而已。
HTML5 <!DOCTYPE>
<!doctype> 聲明必須位於 HTML5 文檔中的第一行,使用非常簡單,寫法:<!DOCTYPE html>
新特性
HTML5 中的一些有趣的新特性:
用於繪畫的 canvas 元素
用於媒介回放的 video 和 audio 元素
對本地離線存儲的更好的支持
新的特殊內容元素,比如 article、footer、header、nav、section
新的表單控件,比如 calendar、date、time、email、url、search
HTML5 添加了很多語義元素如下所示:
標籤 | 描述 |
<article> | 定義頁面獨立的內容區域。 |
<aside> | 定義頁面的側邊欄內容。 |
<bdi> | 允許您設置一段文本,使其脫離其父元素的文本方向設置。 |
<command> | 定義命令按鈕,比如單選按鈕、複選框或按鈕 |
<details> | 用於描述文檔或文檔某個部分的細節 |
<dialog> | 定義對話框,比如提示框 |
<summary> | 標籤包含 details 元素的標題 |
<figure> | 規定獨立的流內容(圖像、圖表、照片、代碼等等)。 |
<figcaption> | 定義 <figure> 元素的標題 |
<footer> | 定義 section 或 document 的頁腳。 |
<header> | 定義了文檔的頭部區域 |
<mark> | 定義帶有記號的文本。 |
<meter> | 定義度量衡。僅用於已知最大和最小值的度量。 |
<nav> | 定義導航鏈接的部分。 |
<progress> | 定義任何類型的任務的進度。 |
<ruby> | 定義 ruby 註釋(中文注音或字符)。 |
<rt> | 定義字符(中文注音或字符)的解釋或發音。 |
<rp> | 在 ruby 註釋中使用,定義不支持 ruby 元素的瀏覽器所顯示的內容。 |
<section> | 定義文檔中的節(section、區段)。 |
<time> | 定義日期或時間。 |
<wbr> | 規定在文本中的何處適合添加換行符。 |
HTML5 表單
新表單元素, 新屬性,新輸入類型,自動驗證。
已移除元素
以下的 HTML 4.01 元素在HTML5中已經被刪除:
<acronym> 標記一個首字母縮寫,h5用abbr代替
<applet> 用object代替
<basefont>規定頁面上的默認字體顏色和字號:
<big>呈現大號字體效果。
<center> 這個...這麼常用為什麼去掉??
<dir> 簽定義目錄列表。類似於ul
<font> //這個也是比較常用的,但是取消了
<frame> 標籤定義 frameset 中的一個特定的窗口(框架)
<frameset>定義一個框架集
<noframes> 元素可為那些不支持框架的瀏覽器顯示文本。noframes 元素位於 frameset 元素內部。
<strike>標籤可定義加刪除線文本定義。
HTML5 瀏覽器支持
最新版本的 Safari、Chrome、Firefox 以及 Opera 支持某些 HTML5 特性。Internet Explorer 9 將支持某些 HTML5 特性。
IE9 以下版本瀏覽器兼容HTML5的方法,使用的靜態資源的html5shiv包:(菜鳥教程)
<!--[if lt IE9]> <script src="http://cdn.static.runoob.com/libs/html5shiv/3.7/html5shiv.min.js"></script> <![endif]-->
載入後,初始化新標籤的CSS:
/*html5*/article,aside,dialog,footer,header,section,footer,nav,figure,menu{display:block}
HTML 5 視頻
寫法:<video src="movie.ogg" controls="controls" width="320" height="240">文字</video>
control 屬性供添加播放、暫停和音量控件。
<video> 與 </video> 之間插入的內容是供不支持 video 元素的瀏覽器顯示的:
注意:要確保適用於 Safari 瀏覽器,視頻文件必須是 MPEG4 類型。所以video 元素允許多個 source 元素
所以寫成:
<video width="320" height="240" controls="controls">
<source src="movie.ogg" type="video/ogg">
<source src="movie.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
<video> 標籤的屬性
autoplay:值為:autoplay,如果出現該屬性,則視頻在就緒後馬上播放。
controls:值為:controls如果出現該屬性,則向用戶顯示控件,比如播放按鈕。height:pixels設置視頻播放器的高度。
loop:值為:loop,如果出現該屬性,則當媒介文件完成播放後再次開始播放。
preload:值為:preload,如果出現該屬性,則視頻在頁面加載時進行加載,並預備播放。如果使用 "autoplay",則忽略該屬性。
src:值為:url,要播放的視頻的 URL。
width:值為:pixels,設置視頻播放器的寬度。
同時還可以支持dom事件支持:play(),pause(),load(),canPlayType();
HTML 5 音頻
寫法:<audio src="song.ogg" controls="controls">Your browser does not support the audio tag.</audio>
control 屬性供添加播放、暫停和音量控件。
<audio> 與 </audio> 之間插入的內容是供不支持 audio 元素的瀏覽器顯示
當前,audio 元素支持三種音頻格式:mp3,mav和ogg,Safari 瀏覽器,音頻文件必須是 MP3 或 Wav 類型。多個 source 元素支持。
<audio> 標籤的屬性
屬性 | 值 | 描述 |
autoplay | autoplay | 如果出現該屬性,則音頻在就緒後馬上播放。 |
controls | controls | 如果出現該屬性,則向用戶顯示控件,比如播放按鈕。 |
loop | loop | 如果出現該屬性,則每當音頻結束時重新開始播放。 |
preload | preload | 如果出現該屬性,則音頻在頁面加載時進行加載,並預備播放。如果使用 "autoplay",則忽略該屬性。 |
src | url | 要播放的音頻的 URL。 |
HTML 5 拖放
拖放(Drag 和 drop)是 HTML5 標準的組成部分。
draggable="true" 設置元素為可拖放 <img draggable="true" />
ondragstart 和 setData()規定當元素被拖動時,會發生什麼
ondragoverondragover 事件規定在何處放置被拖動的數據。
Ondrop:當放置被拖數據時,會發生 drop 事件。
(說實話真心不好理解,看一下w3c給的案例吧:)
<script type="text/javascript">
function allowDrop(ev)
{ev.preventDefault();}
function drag(ev)
{ev.dataTransfer.setData("Text",ev.target.id);//方法設置被拖數據的數據類型和值:
}
function drop(ev)
{
ev.preventDefault();//阻止對元素的默認處理方式,默認不接受拖拽元素的
var data=ev.dataTransfer.getData("Text");//獲得被拖的數據
ev.target.appendChild(document.getElementById(data));//放置進去
}
</script>
<div id="div1" ondrop="drop(event)"ondragover="allowDrop(event)"></div>
<img id="drag1" src="img_logo.gif" draggable="true"ondragstart="drag(event)" width="336" height="69" />
這個拖拽看起來比較費勁,一般我們也用不到,大家可以先收藏起來,如果需要用到的時候,再返回來直接套用案例!
未完待續.....
看不懂沒關係,多用幾次,平時寫網頁的時候,可以慢慢的增加使用h5標籤,因為除了ie8一下,大部分瀏覽器還是可以支持的!本教程是結合了w3c,菜鳥教程,慕課網的內容總結的,如果不妥多多指教!