自HTML5標(biāo)準(zhǔn)的提出就得到非常多的關(guān)注,而作為全球使用用戶最多的IE瀏覽器能夠支持HTML5標(biāo)準(zhǔn)也是大家備受關(guān)注一個(gè)問題,上周微軟在技術(shù)大會(huì)上就表示目前微軟正在開發(fā)的IE9將更加支持HTML5標(biāo)準(zhǔn),但對(duì)于IE9是否將完全支持HTML5所有的標(biāo)準(zhǔn),微軟卻表現(xiàn)的有點(diǎn)含糊其辭。HTML5標(biāo)準(zhǔn)能為網(wǎng)頁(yè)帶來更高效更潔凈的代碼,只有微軟參與HTML5的設(shè)計(jì)工作,才能讓IE瀏覽器識(shí)別更多的新元素。
專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)綏化免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000+企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
HTML5標(biāo)準(zhǔn)預(yù)計(jì)是在2022年向全世界發(fā)布,雖然目前距他發(fā)布的日期還有3年左右的時(shí)間,但是我認(rèn)為它距離我們并不是那么遙遠(yuǎn),目前很多網(wǎng)站的設(shè)計(jì)和開發(fā)都是在采用HTML5的標(biāo)準(zhǔn)。在HTML5標(biāo)準(zhǔn)的制定和推廣方面,蘋果、Google、Opera和Mozilla等知名的瀏覽器廠商都表現(xiàn)的比較積極,微軟現(xiàn)在也開始付出行動(dòng)了,從上周微軟在技術(shù)大會(huì)公布的IE9細(xì)節(jié)來看,微軟將采取一種謹(jǐn)慎的態(tài)度涉足網(wǎng)頁(yè)標(biāo)準(zhǔn)。微軟也曾表示:IE瀏覽器將以標(biāo)準(zhǔn)HTML5為核心。但是微軟的最新瀏覽器IE8及以下IE版本對(duì)HTML5標(biāo)簽的支持是有限的,我們可以通過在網(wǎng)頁(yè)中添加腳本的方式來解決目前IE瀏覽器對(duì)HTML5支持的問題。
讓IE(包括IE6)支持HTML5元素,我們需要在HTML頭部添加以下JavaScript,這是一個(gè)簡(jiǎn)單的document.createElement聲明,利用條件注釋針對(duì)IE來調(diào)用這個(gè)js文件。Opera,F(xiàn)ireFox等其他非IE瀏覽器就會(huì)忽視這段代碼,也不會(huì)存在http請(qǐng)求。
上面這段代碼僅會(huì)在IE瀏覽器下運(yùn)行,還有一點(diǎn)需要注意,在頁(yè)面中調(diào)用html5.js文件必須添加在頁(yè)面的head元素內(nèi),因?yàn)镮E瀏覽器必須在元素解析前知道這個(gè)元素,所以這個(gè)js文件不能在頁(yè)面底部調(diào)用。
這個(gè)html5的js文件是作者把他放在Google code project上提供給大家可以直接調(diào)用的,當(dāng)然,如果覺得這樣會(huì)影響你的網(wǎng)頁(yè)打開速度,你可以把html5的js文件直接下載下來讓后上傳到自己的服務(wù)器單獨(dú)調(diào)用。
以下是html5的js文件中的代碼:
(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(','),i=e.length;while(i--){document.createElement(e[i])}})()
除了在網(wǎng)頁(yè)中調(diào)用包含以上代碼的js文件來讓IE瀏覽器支持HTML5元素以外,你也可以以下面這種方式把代碼直接添加到網(wǎng)頁(yè)中。
IE開發(fā)經(jīng)理艾德里安巴特曼(Adrian Bateman )就曾表示,IE團(tuán)隊(duì)希望分享自己對(duì)HTML5的看法,并參與制定該標(biāo)準(zhǔn)的討論。巴特曼表示,盡管目前IE團(tuán)隊(duì)更多是提出問題,而非給出解決辦法,但是公開討論正是推動(dòng)HTML5發(fā)展的最佳方式。相信無論IE瀏覽器是否能夠繼續(xù)支持HTML5標(biāo)準(zhǔn),HTML5標(biāo)準(zhǔn)在全球廣泛的使用已經(jīng)是大勢(shì)所趨。
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
對(duì)于其他HTML5新增標(biāo)簽,不能夠?qū)崿F(xiàn)兼容問題。
資料來源:HTML5學(xué)堂(碼匠) -?HTML5 新標(biāo)簽兼容舊版本瀏覽器的方法
不支持,IE9以上才支持。讓IE(ie6/ie7/ie8)支持HTML5元素,需要在HTML頭部添加以下JavaScript,這是一個(gè)簡(jiǎn)單的document.createElement聲明,利用條件注釋針對(duì)IE來調(diào)用這個(gè)js文件。Opera,F(xiàn)ireFox等其他非IE瀏覽器就會(huì)忽視這段代碼,也不會(huì)存在http請(qǐng)求。請(qǐng)記得在CSS中進(jìn)行如下定義,目的是讓這些標(biāo)簽成為塊狀元素,just like div。
/*html5*/br/article,aside,dialog,footer,header,section,footer,nav,figure,menu{display:block}
HTML5的語(yǔ)義化標(biāo)簽以及屬性,可以讓開發(fā)者非常方便地實(shí)現(xiàn)清晰的web頁(yè)面布局,加上CSS3的效果渲染,快速建立豐富靈活的web頁(yè)面顯得非常簡(jiǎn)單。
HTML5的新標(biāo)簽元素有:
header定義頁(yè)面或區(qū)段的頭部;
footer定義頁(yè)面或區(qū)段的尾部;
nav定義頁(yè)面或區(qū)段的導(dǎo)航區(qū)域;
section頁(yè)面的邏輯區(qū)域或內(nèi)容組合;
article定義正文或一篇完整的內(nèi)容;
aside定義補(bǔ)充或相關(guān)內(nèi)容;
使用他們能讓代碼語(yǔ)義化更直觀,而且更方便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]--
第二種方法:使用Google的html5shiv包(推薦)
!--[if lt IE9]
![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)頁(yè),我們?cè)撛趺唇鉀Q呢?
我們可以參照facebook的做法,即引導(dǎo)用戶進(jìn)入帶有noscript標(biāo)識(shí)的 “/?_fb_noscript=1”頁(yè)面,用 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ì)的界面。
名稱欄目:html5ie8,html兼容ie8
URL分享:http://sd-ha.com/article24/dsihoje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)站導(dǎo)航、用戶體驗(yàn)、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)