一、H5有哪些新特性,移除了哪些元素?如何處理h5新標籤的瀏覽器相容性問題,如何區分html和html5
1. html5不在是SGL(通用標記語言)的一個子集,而包含了:影象、位置、儲存、多工等功能
2. 新增的影象為canvas類,媒體回放video和audio元素;本地離線儲存localStorage,在瀏覽器關閉後也可以儲存資料;而sessionStorage在瀏覽器關閉後會自動刪除資料
3.新增內容標籤:article、footer、header、nav、section;新增加表單控制元件:calendar、date、time、email、url、search;控制元件元素:webworker、websocket、Geolocation。
4、移除的元素:basefont、big、center、font、s、strike、tt、u等內容修改標籤、以及效能較差的frame、frameset、noframes。
5、處理h5新標籤瀏覽器的相容性問題
5.1、IE8-可以通過document.createElement來建立標籤,並給標籤預設的樣式和能力
5.2、也可以引用html5shim框架
6、區分html與html5:主要是通過doctype頭、新標籤和功能元素。
二、html語義化的好處
1、在樣式丟失的情況下,頁面呈現的結構也是清晰的
2、螢幕閱讀器完全可以根據語義標籤來讀取內容(如盲人網站)
3、pad、手機可以根據語義標籤做不同的處理,如手機上標題顯示粗體,而pad上標題顯示較大字型
4、對搜尋引擎和爬蟲的友好
三、iframe優缺點
1、優點
1.1、在不重新整理的情況下重新載入的新的頁面;
1.2、方便用於後臺管理,或不用於對搜尋引擎友好的系統
2、缺點:
2.1、不利用搜尋引擎,因為爬蟲只能看到框架而見不到框架的連結
2.2、框架有時候會讓人迷惑,尤其是多個框架出滾動條的時候
2.3、不容易列印(暫時只能分框架頁的列印,而不能列印整個frameset)
2.4、瀏覽器後退按鈕無效(他只能後退當前獲得游標的iframe)
2.5、多數pad、手機不支援框架
2.6、增加http請求
2.7、iframe會阻塞頁面的載入,包含iframe的頁面的window.onload事件,只有等待iframe載入完成後才能觸發,但可以通過js來動態設定iframe的src屬性可以避免這種情況(chrome和safari支援)
3、iframe和frame的區別
3.1、iframe和frame實現的功能相同;
3.2、iframe可以單獨使用,而frame必須和frameset一起使用
3.5、在html5中iframe僅支援src屬性,而對frameset和frame不在受支援
四、label標籤的作用、應用
1、lable標籤主要是作為一種標題說明元素儲存的,通常有:for關聯、以及將form control放在label標籤中的方式
2、lable標籤主要屬性:
2.1、for屬性,做標籤關聯,但for關聯的必須是一個form control標籤
2.2、accesskey屬性:用於設定熱鍵,但不能與瀏覽器熱鍵衝突,否則會先觸發瀏覽器的熱鍵
3、label的巢狀
3.1、labe標籤內不能再巢狀label
3.2、label只能包含一個input子孫(包含checkbox、text等元素)、button、select、textarea元素
3.3、label巢狀時,事件的觸發遵循冒泡原則
<label id="inputOne" > <input id="inputOne_inner" type="button" value="Test" /> </label>
<script type="text/javascript"> $(function(){ $('#inputOne').click(function(){ console.log('label.........'); }); $('#inputOne_inner').click(function(event){ event.stopPropagation(); console.log('input.........') }); }); </script>
由於在inputOne_inner的click事件中阻止的冒泡,所以單擊時只輸出 ‘input……………….’。
4、for關聯
4.1、for關聯,在labe標籤上的事件,會觸發關聯元素的相應事件(並且關聯元素的冒泡阻止動作無效):
<label id="labeTow" for="inputTow" >Tow-label</label> <!--labe繫結的事件,會觸發關聯元素的事件--> <input id="inputTow" type="button" value="Tow" />
<script type="text/javascript"> $(function(){ $('#labeTow').click(function(){ console.log('labelTow.........'); }); $('#inputTow').click(function(event){ event.stopPropagation(); console.log('inputTow.........'); }); }); </script>
單擊labeTow會做如下輸出(label會先觸發自身的事件,然後觸發關聯元素相應的事件):
labelTow…………….
inputTow……………
單擊inpuTow會做如輸出:
inputTow………….
5、label標籤不能為a和button標籤的後代
6、html5中對lable標籤加了form屬性,規則label所屬的一個或多個表單