2009-04-30 62 views

回答

7

也沒有。

最好是編寫可在所有瀏覽器中工作的代碼,而不需要瀏覽器特定的代碼或css黑客。這當然不是很容易完成,這就是爲什麼很多人使用其他方法。

關鍵是要避免某些瀏覽器(通常是Internet Explorer)遇到問題。一個這樣的事情是使用填充而不是邊距,因爲IE不能正確處理邊緣摺疊。

一些處於黑客邊界線中的方法使用的代碼不會影響正常工作的瀏覽器,但會修復特定瀏覽器的問題。這可能是爲通常不需要的元素指定高度或在浮動元素上指定display:inline

頁面Position is everything有一些錯誤和建議修復的示例。 (通常修補程序是某種黑客攻擊,因此您當然也應該考慮是否可以完全避免此問題。)

+0

你列出的大多數問題都歸結爲設置文檔類型。如果你不這樣做,那麼是的,你將在瀏覽器之間產生根本性的差異。使用CSS重設的Doctype可以解決正常使用情況下的所有問題。 – NotMe 2009-04-30 20:52:24

+0

不,我所概述的內容即使在您有適當的文檔類型和有效的代碼時也適用。沒有它,你的情況會變得更糟。 – Guffa 2009-04-30 22:10:33

0

如果可能,也不要這樣做。現在,舊的Netscape,IE < = 6等不再使用太多,我嘗試使用適用於所有瀏覽器(例如FF> = 2,IE> = 7,Chrome,Opera)的功能。

3

最好不要做。

一個很好的css-reset和css工作在同一個跨瀏覽器是一個更好的解決方案。

如果你的設計完全排除,那麼(並且只有這樣)纔會嘗試黑客或IE條件註釋。

我還沒有看到需要多重CSS文件(超過幾個IE6更正通過條件註釋)。

0

Conditional comments與Internet Explorer問題似乎是常態。結合一點JavaScript,如Dean Edward's ie7.js,您可以緩解大多數跨瀏覽器問題,而無需在CSS文件中使用黑客技術。

0

它更好地使用Internet Explorer 6-7的不同css文件(包括他們通過conditional comments),併爲其他瀏覽器的黑客。

0

一種跟進是如何開發工作的單個文件。

我看到工作的最好方法是從無到有,慢慢構建起來,並通過改變來檢查變化,即它在覈心瀏覽器(特別是有問題的瀏覽器)中仍然兼容。

當你完全使用一個瀏覽器工作,然後說「轉換時間」是痛苦真的開始時,你必須開始黑客攻擊。

0

My approach使用PHP類來檢測操作系統,瀏覽器和瀏覽器版本。您可以針對任何操作系統上幾乎任何瀏覽器的任何版本。