html5 css3常見相容問題

來源:互聯網
上載者:User

標籤:

  1.讓老式瀏覽器支援HTML5 HTML5能為我們做的事兒很多,最為可口的就是語義化標籤的應用,如果你已經在Chrome或者其他支援HTML5的瀏覽器上用過它的牛x,那這篇文章對你一定有用,因為現在你也可以在IE上用到HTML5。  第一種方法:使用Google的html5shiv包(推薦)首先你要引用下面是引用Google的html5.js檔案,好處就不說了:  
1 <!--[if IE]>2 <script src=”http://html5shiv.googlecode.com/svn/trunk/html5.js”></script>3 < ![endif]-->

 

 

將上代碼複製到head部分,記住一定要是head部分(因為IE必須在元素解析前知道這個元素,所以這個js檔案不能在其他位置調用,否則失效)

主要是讓這些html5標籤成塊狀,像div那樣。好了,簡單吧,一句話概括就是:引用html5.js  使html5標籤成塊狀

 

第二種方法:Coding JavaScript 
 1 <!--[if lt IE9]>  2 <script>  3    (function() { 4      if (!  5      /*@[email protected]*/ 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]-->

 

 

但是不管使用以上哪種方法,都要初始化新標籤的CSS.因為HTML5在預設情況下表現為內嵌元素,對這些元素進行布局我們需要利用CSS手工把它們轉為塊狀元素方便布局

 

1 /*html5*/2 article,aside,dialog,footer,header,section,footer,nav,figure,menu{display:block}

 

但是如果ie6/7/8 禁用指令碼的使用者,那麼就變成了無樣式的"白板"網頁,我們該怎麼解決呢?

我們可以參照facebook的做法,即引導使用者進入帶有noscript標識的 “/?_fb_noscript=1”頁面,用 html4 標籤替換 html5 標籤,這要比為了保持相容性而寫大量 hack 的做法更輕便一些。

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


 這樣可以引導使用者開啟指令碼,或者直接跳轉到HTML4標籤設計的介面。

 

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

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

 

Opacity透明度

元素的透明度在IE中可以很方便的用濾鏡來實現。

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

這裡半透明地區
opacity: .4;

filter:alpha(opacity=40);

 

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

在IE中可以利用Vector Markup Language (VML)和javascript來實現這些效果,參見IE-CSS3,在引用了一個HTC檔案後,在IE瀏覽器中就可以使用這三種CSS3屬性了。

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 */

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

shadow會產生連續、漸層的陰影

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

drop-shadow產生的陰影沒有明暗變化

 

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

 

濾鏡似乎和現有的htc指令碼有衝突,或者可以稱之為特性:兩者同時在一個元素上啟用的時候,濾鏡效果會轉移到其子項目上

html5 css3常見相容問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.