HTML5 Shiv完美解決IE(IE6/IE7/IE8)不兼容HTML5標(biāo)簽的方法
HTML5的語義化標(biāo)簽以及屬性,可以讓開發(fā)者非常方便地實(shí)現(xiàn)清晰的web頁面布局,加上CSS3的效果渲染,快速建立豐富靈活的web頁面顯得非常簡(jiǎn)單。
HTML5的新標(biāo)簽元素有:
<header>定義頁面或區(qū)段的頭部;
<footer>定義頁面或區(qū)段的尾部;
<nav>定義頁面或區(qū)段的導(dǎo)航區(qū)域;
<section>頁面的邏輯區(qū)域或內(nèi)容組合;
<article>定義正文或一篇完整的內(nèi)容;
<aside>定義補(bǔ)充或相關(guān)內(nèi)容;
使用他們能讓代碼語義化更直觀,而且更方便SEO優(yōu)化。但是此HTML5新標(biāo)簽在IE6/IE7/IE8上并不能識(shí)別,需要進(jìn)行JavaScript處理。以下就介紹幾種方式。
方式一:Coding JavaScript
<!--[if lt IE9]> <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瀏覽器將創(chuàng)建HTML5標(biāo)簽, 這樣非IE瀏覽器就會(huì)忽視這段代碼,也就不會(huì)有無謂的http請(qǐng)求了。
第二種方法:使用Google的html5shiv包(推薦)
<!--[if lt IE9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]-->
由于國內(nèi)google的服務(wù)器訪問卡,建議調(diào)用國內(nèi)的cdn
<!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <![endif]-->
但是不管使用以上哪種方法,都要初始化新標(biāo)簽的CSS.因?yàn)镠TML5在默認(rèn)情況下表現(xiàn)為內(nèi)聯(lián)元素,對(duì)這些元素進(jìn)行布局我們需要利用CSS手工把它們轉(zhuǎn)為塊狀元素方便布局
/*html5*/
article,aside,dialog,footer,header,section,footer,nav,figure,menu{display:block}
但是如果ie6/7/8 禁用腳本的用戶,那么就變成了無樣式的"白板"網(wǎng)頁,我們?cè)撛趺唇鉀Q呢?
我們可以參照facebook的做法,即引導(dǎo)用戶進(jìn)入帶有noscript標(biāo)識(shí)的 “/?_fb_noscript=1”頁面,用 html4 標(biāo)簽替換 html5 標(biāo)簽,這要比為了保持兼容性而寫大量 hack 的做法更輕便一些。
<!--[if lte IE 8]> <noscript> <style>.html5-wrappers{display:none!important;}</style> <div class="ie-noscript-warning">您的瀏覽器禁用了腳本,請(qǐng)<a href="">查看這里</a>來啟用腳本!或者<a href="/?noscript=1">繼續(xù)訪問</a>. </div> </noscript> <![endif]-->
這樣可以引導(dǎo)用戶開啟腳本,或者直接跳轉(zhuǎn)到HTML4標(biāo)簽設(shè)計(jì)的界面。
相關(guān)文章
JavaScript基礎(chǔ)篇之變量作用域、傳值、傳址的簡(jiǎn)單介紹與實(shí)例
這篇文章介紹了變量的作用域,傳值,傳址的一些簡(jiǎn)單使用,有需要的朋友可以參考一下2013-06-06JavaScript異步調(diào)用定時(shí)方法并停止該方法實(shí)現(xiàn)代碼
JavaScript異步調(diào)用定時(shí)方法并停止該方法實(shí)現(xiàn)代碼 ,需要的朋友可以參考下2012-03-03基于KO+BootStrap+MVC實(shí)現(xiàn)的分頁控件代碼分享
本段js和html兩段代碼實(shí)現(xiàn)分頁控件效果,下面通過本文給大家詳細(xì)介紹下基于KO+BootStrap+MVC實(shí)現(xiàn)的分頁控件,非常不錯(cuò),感興趣的朋友一起看看吧2016-11-11JS獲取字符串實(shí)際長(zhǎng)度(包含漢字)的簡(jiǎn)單方法
下面小編就為大家?guī)硪黄狫S獲取字符串實(shí)際長(zhǎng)度(包含漢字)的簡(jiǎn)單方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-08security.js實(shí)現(xiàn)的RSA加密功能示例
這篇文章主要介紹了security.js實(shí)現(xiàn)的RSA加密功能,結(jié)合實(shí)例形式分析了基于security.js進(jìn)行RSA加密的相關(guān)操作技巧,需要的朋友可以參考下2018-06-06詳解Bootstrap網(wǎng)格垂直和水平對(duì)齊方式
網(wǎng)格在網(wǎng)頁布局中是一個(gè)重點(diǎn)和難點(diǎn),布局是網(wǎng)頁設(shè)計(jì)的起點(diǎn)和基礎(chǔ),本文主要介紹了Bootstrap網(wǎng)格垂直和水平對(duì)齊方式,感興趣的可以了解一下2021-07-07js實(shí)現(xiàn)有過渡漸變效果的圖片輪播相冊(cè)(兼容IE,ff)
這篇文章主要介紹了js實(shí)現(xiàn)有過渡漸變效果的圖片輪播相冊(cè),兼容IE、ff,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-01-01