IE8本來就對html5的屬性支持不是很完善,對于css2也沒有完全支持,更不用說css3了。因此如果想弄特效只能盡力使用純js的。并且使用ie8支持的css屬性
十載的朝陽網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整朝陽建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“朝陽網(wǎng)站設(shè)計(jì)”,“朝陽網(wǎng)站推廣”以來,每個客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
HTML5的語義化標(biāo)簽以及屬性,可以讓開發(fā)者非常方便地實(shí)現(xiàn)清晰的web頁面布局,加上CSS3的效果渲染,快速建立豐富靈活的web頁面顯得非常簡單。
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上并不能識別,需要進(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]--
第二種方法:使用Google的html5shiv包(推薦)
!--[if lt IE9]
![endif]--
但是不管使用以上哪種方法,都要初始化新標(biāo)簽的CSS.因?yàn)镠TML5在默認(rèn)情況下表現(xiàn)為內(nèi)聯(lián)元素,對這些元素進(jìn)行布局我們需要利用CSS手工把它們轉(zhuǎn)為塊狀元素方便布局
/*html5*/
article,aside,dialog,footer,header,section,footer,nav,figure,menu{display:block}
但是如果ie6/7/8 禁用腳本的用戶,那么就變成了無樣式的"白板"網(wǎng)頁,我們該怎么解決呢?
我們可以參照facebook的做法,即引導(dǎo)用戶進(jìn)入帶有noscript標(biāo)識的 “/?_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"您的瀏覽器禁用了腳本,請a href=""查看這里/a來啟用腳本!或者a href="/?noscript=1"繼續(xù)訪問/a.
/div
/noscript
![endif]--
這樣可以引導(dǎo)用戶開啟腳本,或者直接跳轉(zhuǎn)到HTML4標(biāo)簽設(shè)計(jì)的界面。
html5media是一個很給力的JavaScript類庫,它不依賴于任何JavaScript框架。使用了html5media之后,當(dāng)瀏覽器不支持HTML5時,它將會自動切換成Flash模式的Flowplayer播放器。雖然,目前web播放器很多,但多數(shù)播放器仍為Flash播放器,處理代碼上并不簡潔。
如何使用html5media
1、首先在頁面的head部分加入如下腳本
1 script src=""/script
可以通過使用IE條件注釋的方法,只在舊版IE瀏覽器中加載這條JS腳本。
2、然后再使用audio或video添加音頻視頻就行了
1 !-- 視頻媒體標(biāo)簽 --
2
3 video src="iefans.net.mp4" width="320" height="200" controls preload/video
4
5 !-- 音頻媒體標(biāo)簽 --
6
7 audio src="iefans.net.mp3" controls preload/audio
8
9 這樣便可以在IE8,甚至老掉牙的IE6瀏覽器中使用audio和video標(biāo)簽了。
像這類為不支持html5標(biāo)簽而出現(xiàn)的JS項(xiàng)目,會隨著HTML5瀏覽器和HTML5的優(yōu)勢展現(xiàn)會越來越多起來。
itjob老師教過為了方便兼容IE8中使用HTML5,可以使用JS的方法來使低于IE9版本的IE瀏覽器兼容。
!--[if lt IE 9]
script
(function(){
var tags = ['header','footer','figure','figcaption','details','summary','hgroup','nav','aside','article','section','mark','abbr','meter','output','progress','time','video','audio','canvas','dialog'];
for(var i=tags.length - 1;i-1;i--){ document.createElement(tags[i]);}
})();
/script
![endif]--
第二種方法:使用Google的html5shiv包
HTML5的新增結(jié)構(gòu)標(biāo)簽包括headerfooter等,在IE8-瀏覽器當(dāng)中,需要借助JavaScript以及CSS來實(shí)現(xiàn)兼容。具體代碼如下:
CSS代碼
style
article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary{
display: block;
}
/style
JS代碼(原生JavaScript,如下示范代碼當(dāng)中只包含4種新標(biāo)簽,其他新增結(jié)構(gòu)標(biāo)簽同理)
script
document.createElement('header');
document.createElement('nav');
document.createElement('article');
document.createElement('footer');
/script
對于其他HTML5新增標(biāo)簽,不能夠?qū)崿F(xiàn)兼容問題。
資料來源:HTML5學(xué)堂(碼匠) -?HTML5 新標(biāo)簽兼容舊版本瀏覽器的方法
您好:
讓IE(ie6/ie7/ie8)支持HTML5元素,我們需要在HTML頭部添加以下JavaScript,這是一個簡單的document.createElement聲明,利用條件注釋針對IE來調(diào)用這個js文件。Opera,F(xiàn)ireFox等其他非IE瀏覽器就會忽視這段代碼,也不會存在http請求。
方式一:引用google的html5.js文件,代碼內(nèi)容可以自己下載下來看。
!–[if lt IE9] script src=""/script![endif]–
將以上代碼放到head標(biāo)簽區(qū)間
方式二:自己coding JS搞定。
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
不管你用上面哪中方式,請記得在CSS中進(jìn)行如下定義,目的是讓這些標(biāo)簽成為塊狀元素,just like div。
/*html5*/article,aside,dialog,footer,header,section,footer,nav,figure,menu{display:block}