2010-05-19 82 views
1

我認爲這裏的一切都與我一致,但IE是最不兼容的瀏覽器。處理IE兼容性問題的最佳方法是什麼?

我處理ie的不兼容性爲每個版本使用不同的特定css文件,以正確顯示它?

有沒有更好的方法?

+0

在我的回答如下,JavaScript的瀏覽器選擇:http://rafael.adm.br/css_browser_selector/ - 這是一個處理IE /瀏覽器不一致的不同選項,包括不同版本的IE,這就是你的問題所要求的。 – JohnB 2010-05-19 14:10:55

回答

4

使用帶有<不同的CSS文件的優點! - [如果IE] >過濾器是你可以寫100%兼容CSS,而黑客將讓你的CSS無效。

另一方面,使用CSS黑客只有一個CSS文件的好處是下載效率。

不過,我更喜歡過濾器。使用下面的範例可以幫助我保持瀏覽器特定的CSS組織,並且利用「級聯」以及等同的「特異性」是我發現的處理瀏覽器不一致問題的最簡單方法。不要忘記,您還可以在這些過濾器中包含特定於IE的JavaScript,以充實您的IE體驗。


<link id="stylesheet1" rel="stylesheet" href="css/style.css" type="text/css" media="all" /> 
<!--[if IE]> 
<link id="stylesheet2" rel="stylesheet" href="css/ie.css" type="text/css" media="all" /> 
<![endif]--> 
<!--[if lte IE 6]> 
<link id="stylesheet3" rel="stylesheet" href="css/ie6.css" type="text/css" media="all" /> 
<![endif]-->

這個過濾器模式的其他偉大的事情是,你隔離老化的瀏覽器,這將有一天會成爲過時的代碼編寫。例如,有沒有人關心IE 5了?這些文件並沒有減慢任何速度,因爲它們只是根據需要進行下載,隨着時間的推移,它們不再需要。我寧願使用這種方式,而不使用與我的符合標準的代碼交織在一起的過時代碼。

但是,除IE之外的其他瀏覽器如Safari或Firefox怎麼樣?那麼,儘量編寫CSS/Chrome/Safari/Firefox相同的CSS代碼,我很少需要針對其中的一個特定的黑客入侵,但對於某些我使用過瀏覽器特定的CSS擴展的東西。

另一種選擇是JavaScript的瀏覽器選擇:

http://rafael.adm.br/css_browser_selector/

最後,我簡要地看着S.O.他們似乎並沒有使用IE過濾器。他們有一個CSS文件,他們已經巧妙地託管在Cookie的網域性能:

http://sstatic.net/

+0

感謝兄弟,http://rafael.adm.br/css_browser_selector/是一個真正的幫助 – Starx 2010-05-22 04:11:30

2

不同的CSS文件,每個都帶有IF ie過濾器,可能是將單獨的IE CSS分離出來的最簡單的方法。

+0

這正是我正在做的,只是尋找更好的方法? – Starx 2010-05-19 05:48:02

+0

我更喜歡這種方式,我不確定是否有更好的方法去。你可以嘗試合併你的CSS文件,並添加一堆黑客來下載一個文件,但我認爲這會增加很多混亂,並且可能很困難 - 什麼會覆蓋什麼? – Prescott 2010-05-19 05:52:41

相關問題