全面兼容IE6/IE7/IE8/FF的CSS HACK寫法

CSS hack因爲不一樣的瀏覽器,對CSS的解析認識不同,所以會致使生成的頁面效果不同,得不到咱們所須要的頁面效果。 這個時候咱們就須要針對不一樣的瀏覽器去寫不一樣的CSS,讓它可以同時兼容不一樣的瀏覽器,能在不一樣的瀏覽器中也能獲得咱們想要的頁面效果.css

瀏覽器市場的混亂,給設計師形成很大的麻煩,設計的頁面兼容完這個瀏覽器還得兼容那個瀏覽器,原本ie6跟ff之間的兼容是很容易解決的。加上個ie7會麻煩點,ie8的出現就更頭疼了,原來hack ie7的方法又不能用了,怎麼辦呢?html

第一種方法:瀏覽器

還好,微軟提供了這樣一個代碼:測試

 
  1. <meta http-equiv="x-ua-compatible" content="ie=7" /> 

把這段代碼放到<head>裏面,在ie8裏面的頁面解析起來就跟ie7如出一轍的了,因此,基本上能夠無視ie8,剩下的代碼只須要這樣寫就能夠了ui

 
  1. background:#ffc/* 對firefox有效*/ 
  2. *background:#ccc/* 對ie7有效 */ 
  3. _background:#000/* 只對ie6有效 */ 

解釋一下吧:google

firefox能解析第一段,後面的兩個由於前面加了特殊符號「*」和「_」,firefox認不了,因此只認background:#ffc,看到的是黃色;spa

ie7前兩短都能認,以最後的爲準,因此最後解析是background:#ccc,看到的是灰色;firefox

ie6三段都能認,並且「_」這個只有ie6能認,因此最後解析是_background:#000,看到的是黑色設計

阿門!已是最簡單和最好理解的寫法了,若是你是google進來的,我能夠很負責任的告訴你,這種方法是ok的,我測試過。code

ie8的那段兼容7的代碼我也測試過了,在我如今的windos 7 測試版所帶的ie8是沒問題的,之後ie8正式版出來還管無論用就不知道了。

ps:若是你發現按我這樣寫仍是有問題的話,請查看一下你的html頭,看看<head>以前的內容是否是這樣的標準寫法

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  3. <html xmlns="http://www.w3.org/1999/xhtml"

這個是如今比較規範的寫法,若是你是用dreamweaver作頁面的話,默認也是這種規範的,切記,非這種規範寫法的,兼容性不能保證

第二種方法:

要求苛刻的朋友是不肯意在頁面頭部增長

 
  1. <meta http-equiv="x-ua-compatible" content="ie=7" /> 

這樣一句代碼的,由於這樣的結果是每一個頁面都得加。那麼要想兼容這幾個瀏覽器還真得想別的辦法了。

還有一篇文章《完美兼容ie6,ie7,ie8以及firefox的css透明濾鏡》,可能當時測試的疏忽,IE8的兼容性沒有解決好,好多朋友回覆說用不了。今天抽出些時間,查閱大量資料,終於解決了這個問題了。

如下是兼容IE6/IE7/IE8/FF的寫法,注意下面的順序不可顛倒

 
  1. margin-bottom:40px/*ff的屬性*/ 
  2. margin-bottom:140px\9/* IE6/7/8的屬性 */ 
  3. color:red\/* IE8支持 */ 
  4. *margin-bottom:450px/*IE6/7的屬性*/ 

下面以一個實例的形式表現,你們能夠運行代碼查看一下效果:

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <title>2010最新全面兼容ie6,ie7,ie8,ff的CSS HACK寫法——www.aa25.cn標準之路</title>  
  6. <style type="text/css">  
  7. #abc {  
  8. border:2px solid #00f/*ff的屬性*/ 
  9. border:2px solid #090\9; /* IE6/7/8的屬性 */ 
  10. border:2px solid #F90\0; /* IE8支持 */ 
  11. _border:2px solid #f00/*IE6的屬性*/ 
  12. }  
  13. /*上下順序不能夠寫錯*/ 
  14. </style>  
  15. </head>  
  16. <body>  
  17. <div id="abc">  
  18. <ul>  
  19. <li>FF下藍邊</li>  
  20. <li>IE6下紅邊</li>  
  21. <li>IE7下綠邊</li>  
  22. <li>IE8下黃邊</li>  
  23. <li>轉載請註明來源標準之路<a href="http://www.68css.com">www.68css.com</a></li>  
  24. </ul>  
  25. </div>  
  26. </body>  
  27. </html>  
相關文章
相關標籤/搜索