HTML5對HTML4所做的各種修改中
一個比較重大的修改就是為了使文檔結構更加清晰、容易閱讀,增加了很多新的結構元素。
在HTML5中,為了使文檔的結構更加清晰明確
追加了幾個與頁眉、頁腳、內容區塊等文檔結構相關聯的結構元素。
article元素
article元素表示文檔、頁面、應用程序或站點中的自包含成分所構成的一個頁面的一部分,
并且這部分專用于獨立地分類或復用,例如聚合。
一個博客帖子、一個教程、一個新的故事、視頻及其腳本,都很好地符合這一定義。
除了內容部分,一個article元素通常有它自己的標題(通常放在一個header元素里面),有時還有自己的腳注。
section元素
section元素代表文檔或應用程序中一般性的“段”或者“節”。“段”
在這里的上下文中,指的是對內容按照主題的分組,通常還附帶標題。
例如,書本的章節,帶標簽頁的對話框的每個標簽頁,或者一篇論文的編節號。
網站的主頁也可以分為不同的節,如介紹、新聞列表和聯系信息。
一個section元素通常由內容及其標題組成。但section元素并非一個普通的容器元素;
當一個容器需要被直接定義樣式或通過腳本定義行為時,推薦使用div而非section元素。
section元素的作用是對頁面上的內容進行分塊,
或者說對文章進行分段,但是不要與article混淆,因為article是有著自己完整、獨立的內容。
nav元素
nav元素用來構建導航。導航定義為一個頁面中
(例如,一篇文章頂端的一個目錄,它可以鏈接到同一頁面的錨點)
或一個站點內的鏈接。但是,并不是鏈接的每一個集合都是一個nav,
只需要將主要的、基本的鏈接組放進nav元素即可。
例如,在頁腳中通常會有一組鏈接,包括服務條款、版權聲明、聯系方式等。
對于這些footer元素就足夠放置了。一個頁面中可以擁有多個nav元素,作為頁面整體或不同部分的導航。
nav元素的內容可能是鏈接的一個列表,標記為一個無序的列表,
或者是一個有序的列表,這里需要注意的是nav元素是一個包裝器,
它不會替代<ol>或<ul>元素,但是會包圍它。通過這種方式,
不能理解該元素的舊版本瀏覽器將會顯示列表元素和列表項,并且顯示效果完全正常
HTML是web開發中三大規范之一,可以參考:Web前端開發-HTML入門干貨 。
HTML產生于1990年,1997年的HTML4.0成為互聯網標準并廣泛應用,HTML5是在HTML4.01(1999年發布)的基礎上發展而來,在2008年正式發布,在2012年形成了穩定版本。
其實在HTML4.01之后,W3C組織除了HTML5之外,為了嚴格html編寫規范,發布了XHTML。經過了跌宕起伏的分歧、融合之路,本來預計要逐步被XHTML替代的HTML5,最終成了W3C組織確認的html規范。
在HTML5規范中添加了很多新元素及功能,比如: 更好的頁面結構(語義化標簽)、圖形的繪制(畫布)、多媒體(音頻、視頻)內容、智能表單、地理位置、數據存儲以及多線程等。
可以通過html5test.com網站,測試HTML5各標簽在各類瀏覽器中支持程度。
html5test.com
PC瀏覽器各版本支持HTML5考量
移動瀏覽器各版本支持HTML5考量
對于IE6、7、8來講,支持極少部分的HTML5新標簽,IE9也是部分支持。
在低版本瀏覽器中兼容使用HTML5標簽,有兩種方案,一:自定義標簽;二:使用第三方js插件
(1)自定義標簽
可以利用添加自定義標簽的方式為IE 瀏覽器添加 HTML5 元素。
<script>
//可以使用自定義標簽
document.createElement("header");
document.createElement("article");
document.createElement("aside");
document.createElement("section");
document.createElement("footer");
</script>
但是Internet Explorer 8 及更早 IE 版本的瀏覽器不支持以上的方式,所以采用以下方式。
(2)利用第三方js插件
html5shiv.js是第三方插件,能夠解決IE9以下瀏覽器對html5新增標簽的不識別,并導致CSS不起作用的問題。
<head>
<meta charset="utf-8">
<title>渲染 HTML5</title>
<!-- 專門針對IE瀏覽器的語句,且只能被IE9識別,其他瀏覽器將以下if endif語句認為是注釋 -->
<!--[if lt IE 9]>
<script src="http://apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js"></script>
<![endif]-->
</head>
<!--[if !IE]><!--> 除IE外都可識別 <!--<![endif]-->
<!--[if IE]> 所有的IE可識別 <![endif]-->
<!--[if IE 6]> 僅IE6可識別 <![endif]-->
<!--[if lt IE 6]> IE6以及IE6以下版本可識別 <![endif]-->
<!--[if gte IE 6]> IE6以及IE6以上版本可識別 <![endif]-->
<!--[if IE 9]> 僅IE9可識別 <![endif]-->
(1)語義化標簽
相對于無具體含義的div和span標簽,語義化標簽的優點是方便搜索引擎能識別頁面結構,有利于SEO。
header:該標簽定義了頁面的頭部區域;
nav:該標簽定義了頁面的導航鏈接區域;
footer:該標簽定義了頁面或section的頁腳;
section:該標簽定義了頁面區域;
article:該標簽定義了頁面的內容區域;
(2)多媒體標簽
1)視頻標簽
video:用來定義視頻內容,支持多種視頻格式,包括.mp4、.ogg、.webm等,最常用的是.mp4。
<body>
<!-- src屬性設置視頻源,
width、height設置視頻大小,單位是像素,
autoplay屬性設置自動播放,
對于google瀏覽器需要添加muted屬性,表示靜音播放,
controls屬性設置播放控件,包括播放、暫停等,
loop屬性設置視頻循環播放,
poster屬性設置視頻封面,
-->
<video
src="media/xiaomitv.mp4"
width="300"
height="100"
autoplay="autoplay"
muted="muted"
controls="controls"
loop="loop"
poster="images/a.jpg"
></video>
</body>
還可以采用如下代碼,兼容多種格式的視頻文件
<video width="320" height="240" controls="controls">
<source src="movie.mp4" type="video/mp4" />
<source src="movie.ogg" type="video/ogg" />
<source src="movie.webm" type="video/webm" />
Your browser does not support the video tag.
</video>
2)音頻標簽
audio:用來定義音頻內容,支持多種音頻格式,包括.mp3、.wav、.ogg等,最常用的是.mp3。
音頻標簽的用法和視頻標簽的基本一樣,屬性及屬性值含義也基本一樣。
Google的chrome瀏覽器將音頻、視頻自動播放給默認禁止了,視頻可以通過添加靜音播放折中解決,但是音頻單獨通過html標簽和屬性是不能解決的,需要js配合使用。
(3)智能表單標簽
1)新增input類型
tel:限制輸入電話號碼,目前只有 Safari 8 支持 tel 類型;
email:在提交時驗證輸入內容是否符合郵箱格式;
date:限制輸入的內容為日期,瀏覽器會彈出日期選擇器;
time:限制輸入的內容為時間,瀏覽器會彈出日期選擇器;
number:限制輸入的內容僅為數字;
url:在提交時驗證輸入內容是否符合url格式;
<form action="">
<ul>
<li>搜索:<input type="search" name="" id="" /></li>
<li>電話:<input type="tel" /></li>
<li>郵箱:<input type="email" /></li>
<li>日期:<input type="date" /></li>
<li>時間:<input type="time" /></li>
<li>數量:<input type="number" min="1" max="5"/></li>
<li>網址:<input type="url" /></li>
<li>附件:<input type="file" /></li>
<li><input type="submit" /></li>
</ul>
</form>
2)新增input的屬性
min和max屬性可以限制數字的最值,可以限制日期、時間類型的最值;其屬性值為具體內容。
required屬性表示必填項;其屬性值為required。
placeholder屬性表示提示信息,其屬性值為提示信息。
multiple屬性表示input類型為file時,可以文件多選;其屬性值為multiple。
autocomplete屬性表示是否顯示之前提及過的文本信息;其屬性值為on或者off。
TML 5 是一個新的網絡標準,目標在于取代現有的 HTML 4.01, XHTML 1.0 and DOM Level 2 HTML 標準。它希望能夠減少瀏覽器對于需要插件的豐富性網絡應用服務(plug-in-based rich internet application,RIA),如Adobe Flash等需求。其新增的標簽有哪些呢?
<article> 標簽定義外部的內容(外部內容如blog,news)。使用后感覺和P差不多,語義化的標簽。
<aside >標簽定義article以外的內容(可用做文章的側欄).語義化的標簽。
<audio>標簽定義音樂。支持三種格式,ogg,mp3,wav。 Safari僅支持MP3 and WAV 兩種格式.
<canvas>使用JavaScript在網頁上繪制圖形圖像。學好算法JS無所不能. (瀏覽器說:鴨梨很大).
<command> 定義按鈕用的.說實話,沒用明白。
<datalist >定義選項列表.又是一個不知道咋用的標簽。
<details>用于描述某個文檔部分的內容。語義化的標簽。
<summary >定義details元素標題。語義化的標簽。
<embed>定義嵌入的內容(如插件)。必須有一個src的屬性,值是URL。可以是圖片,swf etc.
<figure>對元素進行組合.語義化的標簽。
<figcaption>定義figure的標題.語義化的標簽.
<footer>定義頁腳。語義化的標簽。
<header>定義頁眉。語義化的標簽。
<hgroup>對網頁或區段(section)的標題進行組合。語義化的標簽。
<keygen>定義密鑰.沒用明白。
<mark>定義帶有記號的文本。突出顯示用的,會有個背景色。
<meter>定義度量衡,用于已知最大和最小值的度量。不懂,在chrome下顯示的是圖像,在firefox和safari下顯示的是<meter>
<nav>定義導航。語義化的標簽。
<output>定義輸出類型。應是和表單一塊用的。
<progress>定義運行中的進度。進度條效果.
<rupy><rp><rt>定義ruby注釋。
<section>定義文檔中的區段。語義化的標簽,自認為是<div>的替代品.
<source>定義媒介源(如<video>和<audio>)定義媒介資源的類型,讓瀏覽器決定是否下載.
<time>定義時間。語義化的標簽。
<video>定義視頻。IE9和Safari支持MP4,其他主流瀏覽器支持Ogg。
來源:HTML5開發小贏家
*請認真填寫需求信息,我們會在24小時內與您取得聯系。