明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

瀏覽器兼容HTML5與CSS3的問題

[摘要]HTML5和CSS3是非常好用并且功能強(qiáng)大的新屬性,唯一的重大缺陷就是可能很多舊版瀏覽器不兼容,今天就給大家分享一下關(guān)于舊版的瀏覽器兼容HTML5和CSS3的問題。1.讓老式瀏覽器支持HTML5 HTML5能為我們做的事兒很多,最為可口的就是語義化標(biāo)簽的應(yīng)用,如果你已經(jīng)在Chrome或者其他支持...
HTML5和CSS3是非常好用并且功能強(qiáng)大的新屬性,唯一的重大缺陷就是可能很多舊版瀏覽器不兼容,今天就給大家分享一下關(guān)于舊版的瀏覽器兼容HTML5和CSS3的問題。

1.讓老式瀏覽器支持HTML5

HTML5能為我們做的事兒很多,最為可口的就是語義化標(biāo)簽的應(yīng)用,如果你已經(jīng)在Chrome或者其他支持HTML5的瀏覽器上用過它的牛x,那這篇文章對你一定有用,因?yàn)楝F(xiàn)在你也可以在IE上用到HTML5。

第一種方法:使用Google的html5shiv包(推薦)

首先你要引用下面是引用Google的html5.js文件,好處就不說了:


JavaScript Code復(fù)制內(nèi)容到剪貼板

1.<!--[if IE]>
2.<script src=”https://html5shiv.googlecode.com/svn/trunk/html5.js”></script>
3.< ![endif]-->

將上代碼復(fù)制到head部分,記住一定要是head部分(因?yàn)镮E必須在元素解析前知道這個元素,所以這個js文件不能在其他位置調(diào)用,否則失效)

主要是讓這些html5標(biāo)簽成塊狀,像p那樣。好了,簡單吧,一句話概括就是:引用html5.js 使html5標(biāo)簽成塊狀

第二種方法:Coding JavaScript


JavaScript Code復(fù)制內(nèi)容到剪貼板

1.<!--[if lt IE9]>   
2.<script>   
3.   (function() {  
4.     if (!   
5.     /*@cc_on!@*/ 
6.     0) return;  
7.     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(', ');  
8.     var i= e.length;  
9.     while (i--){  
10.         document.createElement(e[i])  
11.     }   
12.})()   
13.</script>  
14.<![endif]-->

但是不管使用以上哪種方法,都要初始化新標(biāo)簽的CSS.因?yàn)镠TML5在默認(rèn)情況下表現(xiàn)為內(nèi)聯(lián)元素,對這些元素進(jìn)行布局我們需要利用CSS手工把它們轉(zhuǎn)為塊狀元素方便布局


XML/HTML Code復(fù)制內(nèi)容到剪貼板

1./*html5*/
2.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 的做法更輕便一些。

XML/HTML Code復(fù)制內(nèi)容到剪貼板

1.<!--[if lte IE 8]>   2.<noscript> 3.     <style>.html5-wrappers{display:none!important;}</style> 4.     <p class="ie-noscript-warning">您的瀏覽器禁用了腳本,請<a href="">查看這里</a>來啟用腳本!或者<a href="/?noscript=1">繼續(xù)訪問</a>.  5.     </p> 6.</noscript> 7.<![endif]-->

這樣可以引導(dǎo)用戶開啟腳本,或者直接跳轉(zhuǎn)到HTML4標(biāo)簽設(shè)計(jì)的界面。

2.讓老式瀏覽器兼容CSS3(不完全兼容方案)

到Internet Explorer 8為止,IE系列是不支持CSS3的。在IE中要做一些常用的效果如圓角、陰影,就需要用一些冗余而無意義的元素和圖片來做出這些效果。在厭倦這些后,就 想著用更為簡潔、直接有效、CSS3式的辦法來解決這些問題。好在就算是飽受批評的Internet Explorer,其本身也是足夠強(qiáng)大的。IE特有的技術(shù)可以很好的實(shí)現(xiàn)一些CSS3的效果。

Opacity透明度

元素的透明度在IE中可以很方便的用濾鏡來實(shí)現(xiàn)。

CSS Code復(fù)制內(nèi)容到剪貼板

1.background-color:green;  2.opacity: .4;  3.filter:progid:DXImageTransform.Microsoft.alpha(opacity=40);

這里半透明區(qū)域
opacity: .4;

filter:alpha(opacity=40);

border-radius圓角/Box Shadow盒陰影/Text Shadow文字陰影

在IE中可以利用Vector Markup Language (VML)和javascript來實(shí)現(xiàn)這些效果,參見IE-CSS3,在引用了一個HTC文件后,在IE瀏覽器中就可以使用這三種CSS3屬性了。

CSS Code復(fù)制內(nèi)容到剪貼板

1.-moz-border-radius: 15px; /* Firefox */ 
2.-webkit-border-radius: 15px; /* Safari 、Chrome */ 
3.border-radius: 15px; /* Opera 10.5+, IE6+ 使用 IE-CSS3*/ 
4.-moz-box-shadow: 5px 5px 5px #000; /* Firefox */ 
5.-webkit-box-shadow: 5px 5px 5px #000; /* Safari、Chrome */ 
6.box-shadow: 5px 5px 50px #000; /* Opera 10.5+,IE6+ 使用 IE-CSS3 */ 
7.behavior: url(ie-css3.htc); /*引用ie-css3.htc */

實(shí)際上,在IE中有自己的濾鏡來實(shí)現(xiàn)陰影(shadow)和投影(drop-shadow)效果的

shadow會產(chǎn)生連續(xù)、漸變的陰影


CSS Code復(fù)制內(nèi)容到剪貼板

1.filter: progid:DXImageTransform.Microsoft.Shadow(color='#000000', Direction=145, Strength=10);

CSS Code復(fù)制內(nèi)容到剪貼板

1.filter:progid:DXImageTransform.Microsoft.DropShadow(Color="#6699CC",OffX="5",OffY="5",Positive="1");

濾鏡似乎和現(xiàn)有的htc腳本有沖突,或者可以稱之為特性:兩者同時在一個元素上啟用的時候,濾鏡效果會轉(zhuǎn)移到其子元素上


相信看了這些案例你已經(jīng)掌握了方法,更多精彩請關(guān)注php中文網(wǎng)其它相關(guān)文章!

相關(guān)閱讀:

用Js操作HTTP的Cookie的實(shí)現(xiàn)步驟

Js操作BOM對象模型的詳細(xì)介紹

在HTML的網(wǎng)頁布局里div與span有什么區(qū)別

以上就是瀏覽器兼容HTML5和CSS3的問題的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


網(wǎng)站建設(shè)是一個廣義的術(shù)語,涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護(hù)的網(wǎng)站。