2010-07-29 118 views
2

我知道這可能歸結爲一個哲學問題,所以我不打算開始討論這個話題。但我在尋找(或他們夫婦的)最好的方式來解決在Internet Explorer中的CSS樣式的問題6.在IE6中修復CSS問題的最佳方式是什麼?

我所知道的this article on forabeautifulweb.com,它的建議,只給IE6用戶通用平原IE6樣式表,只有一些基本樣式優於瀏覽器默認值。對於我的應用來說,這不是最好的。

我也意識到通過Javascript「修復」IE6的CSS支持的概念,我對這個想法很有興趣。但我不知道最好的是什麼(如果有的話) - 我知道有幾個在野外漂流。 This article by Eric Meyer mentions one,但是這是近2年前寫的,那麼現在是否有一個更標準的腳本用於此目的?

任何人都可以指向一兩個這樣的腳本,這些腳本已被證明可以有效更新IE6的一些CSS處理,使其更像現代瀏覽器?


UPDATE:所有的人回答誰試圖說服我不要用JS來解決這個問題 - 我堵我的耳朵和嗡嗡聲。 :)

說真的,我不問是否使用JS。我們已經決定我們不需要支持IE6,我們不值得花時間去試試IE6的樣式表。這個決定是基於我們的觀衆和我們的網站使用IE6的統計數據。

至於所有關於「如果用戶沒有啓用JS會怎樣?」的評論那麼在這種情況下,我們網站上的很多內容無論如何都不會看起來很正確,所以這有點不起眼。

我已經實現了Gordon建議的IE7.js,這對於我們在IE6中獲得很少的缺點已經足夠了。

謝謝大家,您的意見也一樣。

+2

我會有點猶豫,試圖解決JavaScript的CSS問題,只是因爲不能保證用戶將啓用JavaScript。 – 2010-07-29 13:57:39

+4

這對我很有效:'<! - [if IE 6]>' – 2010-07-29 14:05:31

回答

3

您可以使用this library如果你想用JavaScript來做到這一點:

IE7.js是一個JavaScript庫,使微軟的Internet Explorer的行爲像一個符合標準的瀏覽器。它修復了許多HTML和CSS問題,並使IE6和IE6下的透明PNG工作正常。

還有CSS3Pie,這更增加了瀏覽器對CSS3的支持:

PIE使得Internet Explorer中6-8能夠呈現幾個最有用的CSS3裝飾功能。

也可以看看Progressive Enhancement and Graceful Degradation的設計理念。

+1

哇。我感到震驚的是,在6個答案中,只有一個實際上發佈了一個我之後說的腳本的例子。謝謝。 – 2010-07-29 16:55:02

2

請不要使用JavaScript來解決這個問題,只需添加一些規則樣式表來解決這些問題......

<link rel="stylesheet" type="text/css" href="normal.css" /> 
<!--[if IE 6]> 
<link rel="stylesheet" type="text/css" href="ie6.css" /> 
<![endif]--> 

在ie6.css,你只是有捏造樣式規則在IE6中工作,你仍然使用它的正常樣式表,所以你的網站在IE6和普通的世界看起來是一樣的。

-3

jQuery及其插件最適合IE6問題。試一試!

+1

jQuery如何幫助解決CSS問題? – 2010-07-29 14:05:39

+0

這個問題有其參考JavaScript固定CSS問題。現在,如果您在IE6中使用jQuery插件,例如jqueryUI對話框,那麼您現在不需要爲CSS計算正確的規格了嗎?在某種程度上,jQuery修復了CSS問題。 tsk tsk tsk – scubacoder 2010-07-29 14:12:56

+0

jQuery如何幫助您解決*自己的佈局代碼中的CSS問題? – 2010-07-29 15:23:08

0

通常,你不需要JavaScript。你可以使用普通的舊CSS。儘管如此,它有助於瞭解hasLayout

通常情況下,您可以通過給出問題元素佈局來修復IE6和7的問題。要做到這一點,給它一個固定的heightwidth,或使用專有zoom

我的青睞目標IE瀏覽器的特定版本的方法是使用條件註釋到<div>添加作爲<body>直接子,它可以讓我知道我在(like so),該版本的IE。這樣一來,我可以直接針對IE6:

.IE6 div.fubar { 
    zoom: 1; 
} 

另外要記住的是,這幾乎是不可能實現跨越IE6/7/8 /火狐/ Safari /鉻/歌劇,所以如果有些事情不要像素平價在近十年的瀏覽器中看起來不錯,你並不總是需要擔心。

Position is everything對IE瀏覽器漏洞的一些有用的提示了。

0

不要使用JavaScript,如果你能避免它 - 你不能保證你的用戶已經激活JS(前面已經提到),你其實並不需要它。

爲了擺脫瀏覽器中不同解釋的許多問題(不僅僅是IE),請使用css-reset樣式表。周圍有很多漂浮物。

甚至更​​好的是,使用一個CSS框架,將消除不同瀏覽器之間有很多很多問題,並會與許多有用的類來解決問題的標準。

我爲一個愛YAML(http://www.yaml.de/en/home.html),然後有藍圖(http://www.blueprintcss.org/),可能還有其他幾個。相信我 - 一旦你使用了CSS框架,你將永遠不想回頭。

1

從個人體驗來看,ie6可以在幾行CSS內修復,並且可以用螢火蟲/開發人員工具欄進行一些檢查。不需要有條件的評論。

大部分我都翻過的問題是填充/保證金基礎,它是下到我不使用最好的方法第一次輪。
我也發現overflow:hidden也修復了ie6錯誤的公平份額。

我建議,讓ie6打開developers toolbar,然後嘗試找出問題所在,並想出更好的方法來編寫該部分。

這就是我個人而言,我使用有條件的評論作爲最後的度假勝地。

+0

哦,這裏是我經常使用的PNG FIX,該死的ie6 =) http://blog.pauljamescampbell.co.uk/about-2/png-fix/ – 2010-07-29 15:07:20

1

Dean Edwards的ie7.js腳本(由Gordon鏈接)仍然是該領域的藝術狀態。

至於什麼是最好的方法,這取決於。 Dean Edwards的腳本修復了大量的IE瀏覽器CSS錯誤,並允許你使用IE 6中根本不支持的多重類選擇器和子選擇器等選擇器。

如果您很高興您的目標受衆中的IE 6用戶傾向於打開JavaScript,像Dean's這樣的圖書館可以爲您節省大量時間,並允許您通過使用選擇器IE 6不支持。

然而,你可能仍然需要一個IE 6的樣式表來處理該院長庫不能解決問題。

最好的解決方案可能是等待微軟停止支持IE 6(就像他們使用Mac IE 5一樣),因爲如果微軟不支持它,那麼人們期望你不太公平。我們目前的得分爲hoping for 2014

相關問題