2009-06-29 135 views
2

我想弄清楚確保跨瀏覽器兼容性的最有效方法。我做了一些研究並且學習了一些有趣的東西,例如Mozilla/Firefox無法處理一個名稱以數字開頭的類。有什麼辦法可以讓CSS適用於任何瀏覽器,還是隻開發多個CSS並添加代碼以根據所用瀏覽器選擇要使用的代碼?在大多數瀏覽器中使網站兼容

回答

3

你可能如Blueprint考慮使用CSS框架。它包括一個CSS重置,應該有所幫助。

此外,您可能想看看Yahoo's CSS reset

0

你可能會使用一個爲你做這個的框架,比如GWT,但是請記住你仍然會有一些問題。

1

你的目標應該是CSS能夠在所有瀏覽器上運行。如果您從每個瀏覽器的CSS文件開始,您會停在哪裏?移動Safari?羣? Konqueror的?每個支持的瀏覽器的每個版本?

最終,你可能需要妥協,但是當你到達那裏時你可以穿越那條路。

1

無論你的基礎設施/框架/等你應該在所有主流瀏覽器上測試你的代碼。儘可能避免使用樣式表來解決瀏覽器特定的問題。瀏覽器將會改變和適應,這意味着當新的瀏覽器出現時,你可能會被迫更新一堆網站。

CSS是一個善變的野獸,我還沒有找到任何解決方案,涵蓋所有的怪癖,除了很多盡職調查和測試。

2

要回答你的問題:沒有辦法只使用一個通用的CSS來製作一個頁面,並且它在所有瀏覽器中的顯示效果是一樣的,除非你只使用所有可用CSS的非常小的子集(選擇器,值,等等。)。

我的工作方式是:

  1. 使用一個CSS復位
  2. 制定附着在標準相當好(火狐,Chrome,Safari瀏覽器,Opera)的瀏覽器
  3. 修補的東西了使用IE條件註釋(因爲你可能需要的東西,不驗證)
3

旁白澄清一點:

...我已經做了一些研究,並學到了一些有趣的東西,如一個事實,即Mozilla的/火狐不能處理具有名稱的類開始與多家 ....

對不起,但這不是Mozilla的限制,它在CSS規範中:類名不能以數字開頭。任何瀏覽器允許他們沒有正確執行規則。

在StackOverFlow上回答了here。規範的相關部分在http://www.w3.org/TR/CSS21/syndata.html#characters(參見第2段)。

+0

很高興知道,儘管我儘量避免用數字開始任何名字。我從www.w3schools.com/css/css_syntax.asp獲得了信息。在頁面底部附近說:不要用數字開始一個類名!它不適用於Mozilla/Firefox。 – Bryan 2009-06-29 21:37:37