1. 程式人生 > >HTML5(一)語義化標籤、新增表單控制元件

HTML5(一)語義化標籤、新增表單控制元件

1、新的頁面結構以及寬鬆的語法規範
        <!doctype html>
        <meta charset="utf-8"/>
2、語義化標籤
(1)<header></header>    頁首:主要用於頁面的頭部的資訊介紹,也可以用於版塊頭部
(2)<hgroup></hgroup>    頁面上的一個標題組合,一個標題和一個子標題,或者標語的組合,例如

<hgroup>
        <h1>妙味課堂</h1>
         <h2>帶您進入富有人情味的IT培訓</h2>
</hgroup>

(3)<nav></nav>    導航(包含連結的一個列表),例如

<nav><a href=“#”>連結</a><a href=“#”>連結</a></nav>
<nav>
        <p><a href=“#”>妙味課堂</a></p>
        <p><a href=“#”>妙味課堂</a></p>
</nav>
<nav>
        <h2>妙味精品課程</h2>
        <ul>
                <li><a href=“#”>javascript</a></li>
                <li><a href=“#”>html+css</a></li>
    </ul>
</nav>

(3)<footer></footer>    頁尾:頁面的底部 或者 版塊底部
(4)<section></section>  頁面上的版塊,用於劃分頁面上的不同區域,或者劃分文章裡的不同章節
(5)<article></article>   用來在頁面中表示一套結構完整且獨立的內容部分。
   可以用來呈現論壇的一個帖子,雜誌或報紙中的一篇文章,一篇部落格,使用者提交的評論內容,可互動的頁面模組掛件等。
(6)<aside></aside>     元素標籤,可以包含於當前頁面或主要內容相關的引用、側邊欄、廣告、nav元素組,以及其他類似的有別於主要內容的部分。
aside 的內容應該與 article 的內容相關。
被包含在<article>中作為主要內容的附屬資訊部分,其中的內容 以是與當前文章有關的引用、詞彙列表等
在<article>之外使用,作為頁面或站點全域性的附屬資訊部分;最典型的形式是側邊欄(sidebar),其中的內容可以是友情連結、附屬導航或廣告單元等。
(7)<figure></figure>    用於對元素進行組合,一般用於圖片或視訊。
(8)<figcation></figcation>   figure的子元素,用於對figure的內容進行說明

<figure>
        <img src=“miaov.png”/>(注意沒有alt)
         <figcaption> 妙味課堂 photo &copy 妙味趣學</figcaption>
</figure>

(9)<time></time>    用來表示時間或日期,例如

<p> 我們在每天早上 <time>9:00</time> 開始營業。 </p>引數
<p> 我在 <time datetime="2008-02-14">情人節</time> 有個約會。 </p>

(10)<datalist></datalist>    選項列表:與input元素配合使用,來定義input可能的值,例如:

<input type="text" list="valList" />
<datalist id="valList">
         <option value="javascript">javascript</option>
           <option value="html">html</option>
          <option value="css">css</option>
</datalist>

(11)<details></details>    用於描述文件或文件某個部分的細節,
        該元素用於摘錄引用等 應該與頁面的主要內容區分開的其他內容
        Open 屬性預設展開
(12)<summary></summary>    details元素的標題,例如

<details>
        <summary>妙味課堂</summary>
        <p>國內將知名的IT培訓機構</p>
</details>

(13)<dialog></dialog>    定義一段對話

<dialog>
        <dt>老師</dt>
        <dd>2+2 等於?</dd>
        <dt>學生</dt>
        <dd>4</dd>
        <dt>老師</dt>
        <dd>答對了!</dd>
</dialog>

(14)<address></address>    定義文章 或 頁面作者的詳細聯絡資訊
(15)<mark></mark>    需要標記的詞或句子
(16)<keygen>    給表單新增一個公鑰,例如

<form action="http://www.baidu.com" method="get">
        使用者: <input type="text" name="usr_name" />
        公鑰: <keygen name="security" />
        <input type="submit" />
</form>

(17)<progress></progress>    定義進度條,例如:

<progress max="100" value="76">
        <span>76</span>%
</progress>

3、新增標籤低版本瀏覽器的相容
   針對IE6-8這些不支援HTML5語義化標籤的瀏覽器,我們可以使用javascript來解決,如下,在頁面的頭部加上

<script>
        document.createElement(“header”);
        document.createElement(“nav”);
        document.createElement(“footer”);
        ...
</script>

   HTML5語義化標籤在IE6-8下,我們用js創建出來以後,它不會有任何預設樣式,甚至沒有display,所以在樣式表裡要對這些標籤定義一下預設的display
4、新增的表單控制元件
(1)新的輸入型控制元件
        email:電子郵箱文字框,跟普通的沒什麼區別
                    ——當輸入不是郵箱的時候,驗證通不過
                    ——移動端的鍵盤會有變化
        tel:電話號碼
        url:網頁的URL
        search:搜尋引擎
                    ——chrome下輸入文字後,會多出一個關閉的X
        range:特定範圍內的數字選擇器
                    ——min、max、step(步數)
        number:只能包含數字的輸入框
        color:顏色選擇器
        datetime:顯示完整日期
        datetime-local:顯示溫度日期
        time:顯示時間、不含時區
        date:顯示日期
        week:顯示周
        month:顯示月
(2)新的表單特性和函式
        placeholder:輸入框提示資訊
        autcomplete:是否儲存使用者輸入值
                    ——預設為on,關閉提示選擇off
        list和datalist:為輸入框構造一個選擇列表
                    ——list值為datalist標籤的id
        required:此項必填,不能為空
        pattern:正則驗證
        formaction:在submit裡定義提交地址
(3)表單驗證
 validity物件,通過下面的valid可以檢視驗證是否通過,例如:8種驗證都返回true,一種驗證失敗返回false 

<form>
        <input type="text" required id="text"/>
        <input type="submit" />
</form>
<script>
var oText=document.getElementById("text");
oText.addEventListener("invalid",fn,false);
function fn()
{
        alert(this.validity.valueMissing);
        ev.preventDefault();
}

        ——valueMissing:輸入值為空時
        ——typeMismatch:控制元件值與預期型別不匹配
        ——patternMismatch:輸入值不滿足pattern正則
        ——tooLong:超過maxLength最大限制
        ——rangeUnderflow:驗證的range最小值
        ——fangeOverflow:驗證的range最大值
        ——stepMismatch:驗證range的當前值是否符合min、max及step的規則
        ——customError:不符合自定義驗證    -->  setCustomValidity()
Invalid事件  :  驗證反饋 input.addEventListener('invalid',fn,false)
        阻止預設驗證:ev.preventDefault()
formnovalidate屬性  :  關閉驗證