愛生命,遠離IE.拒絕IE瀏覽器,Edge改邪歸正也不看。
瀏覽器兼容:
主流瀏覽器都兼容 HTML5 的新標簽,對于 IE8 及以下版本不認識 HTML5的新元素,可以使用 JavaScript 創建一個沒有的元素來解決,例如:
<script> document.createElement("header"); </script>
bootstrap模板:
瀏覽器會進行能力檢測:
<!--[if lt IE 9]> <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script> <![endif]-->
就是參考shiv 來解決兼容性問題,打開CDN庫:https://www.bootcdn.cn/,直接搜索需要的資源就可以了。。。。。。比如:
TML5 現在已經不是 SGML 的子集,主要是關于圖像,位置,存儲,多任務等功能的增加。
本地離線存儲 localStorage 長期存儲數據,瀏覽器關閉后數據不丟失;sessionStorage 的數據在瀏覽器關閉后自動刪除;新的技術webworker, websocket, Geolocation.
新增標簽
1、<article> 標記定義一篇文章
2、<header> 標記定義一個頁面或一個區域的頭部
3、<nav> 標記定義導航鏈接
4、<section> 標記定義一個區域
5、<aside> 標記定義頁面內容部分的側邊欄
6、<hgroup> 標記定義文件中一個區塊的相關信息
7、<figure> 標記定義一組媒體內容以及它們的標題
8、<figcaption> 標簽定義 figure 元素的標題。
9、<footer> 標記定義一個頁面或一個區域的底部
10、<dialog> 標記定義一個對話框(會話框)類似微信
11、<video> 標記定義一個視頻
12、<audio> 標記定義音頻內容
13、<source> 標記定義媒體資源
14、<canvas> 標記定義畫布
15、<menu> 右鍵菜單
16、<meter> 范圍條
17、<progress> 進度條
18、<datalist> 為input標記定義一個下拉列表,配合option
表單類型:
1、email 郵箱地址
2、url URL地址
3、date,time,month,week,datetime,datetime-local 日期類型
4、number 數字(max min step)
5、range 范圍滑塊(max min step)
6、search 搜索輸入框
7、tel 電話號碼輸入框
8、color 顏色拾取器
表單屬性
1、placeholder 輸入框默認內容
2、required 必填內容(必須加name)
3、pattern 正則驗證(必須加name)
4、autofocus 自動聚焦
5、autocomplete 自動完成(autocomplete="on/off")
6、novalidate 不驗證此表單(form屬性)
7、multiple 多個值上傳
移除的元素:
純表現的元素:basefont,big,center,font, s,strike,tt,u;
對可用性產生負面影響的元素:frame,frameset,noframes;
支持HTML5新標簽:
IE8/IE7/IE6支持通過document.createElement方法產生的標簽,可以利用這一特性讓這些瀏覽器支持HTML5新標簽,瀏覽器支持新標簽后,還需要添加標簽默認的樣式。
當然也可以直接使用成熟的框架、比如html5shiv,地址:https://cdn.bootcss.com/html5shiv/r29/html5.min.js。
用語義化代碼更直觀,而且更方便SEO優化。但是此HTML5新標簽在IE6/IE7/IE8上并不能識別,需要進行JavaScript處理。以下就介紹幾種方式。
<!--[if lt IE 9]>
<script>
(function() {
if (!
/*@cc_on!@*/
0) return;
var e = "abbr, article, aside, audio, canvas, datalist, details, dialog, eventsource, figure, footer, header, hgroup, mark, menu, meter, nav, output, progress, section, time, video".split(', ');
var i= e.length;
while (i--){
document.createElement(e[i])
}
})()
</script>
<![endif]-->
如果是IE9以下的IE瀏覽器將創建HTML5標簽, 這樣非IE瀏覽器就會忽視這段代碼,也就不會有無謂的http請求了。
<!--[if lt IE 9]>
<script type="text/javascript" src="http://cdn.bootcss.com/html5shiv/r29/html5.min.js"></script>
<![endif]-->
上面這段代碼僅會在IE瀏覽器下運行,還有一點需要注意,在頁面中調用html5.js文件必須添加在頁面的head元素內,因為IE瀏覽器必須在元素解析前知道這個元素,所以這個js文件不能在頁面底部調用。
不管使用以上哪種方法,都要初始化新標簽的CSS。因為HTML5在默認情況下表現為內聯元素,對這些元素進行布局我們需要利用CSS手工把它們轉為塊狀元素方便布局
/*html5*/
article,aside,dialog,footer,header,section,footer,nav,figure,menu{display:block}
如果IE6/7/8 禁用腳本的用戶,那么就變成了無樣式的"白板"網頁,我們該怎么解決呢?
我們可以參照facebook的做法,即引導用戶進入帶有noscript標識的 “/?_fb_noscript=1”頁面,用 html4 標簽替換 html5 標簽,這要比為了保持兼容性而寫大量 hack 的做法更輕便一些。
<!--[if lte IE 8]>
<noscript>
<style>
.html5-wrappers{display:none!important;}
</style>
<div class="ie-noscript-warning">您的瀏覽器禁用了腳本,請<a href="#">查看這里</a>來啟用腳本!或者<a href="/?noscript=1">繼續訪問</a>.
</div>
</noscript>
<![endif]-->
這樣可以引導用戶開啟腳本,或者直接跳轉到HTML4標簽設計的界面。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。