修改你的CSS針對特定瀏覽器的支持,是永遠沒有錯 - 只要你可以很容易地包含它。正如你會注意到的那樣,符合標準的瀏覽器,*咳嗽*一切除了 MSIE,將永遠不會與未來的版本打破。新的W3C標準也不會破壞以前的標準,他們通常最多會棄用或擴展以前的標準。
人們提到了很好的處理IE的條件註釋。但是在處理所有瀏覽器(手機,壁虎,webkit,歌劇等)時需要多一點。通常,您將解析傳入的請求標頭以從User-Agent參數中獲取瀏覽器類型和版本。基於此你可以開始加載你的CSS文件。
我相信方式我們大多數人是通過:
- 第一個符合標準的瀏覽器開發(讓我們FF爲例)
- 一旦CSS完成你接近的providig支持IE(這個可以與有條件的意見很容易做到,因爲perviously提到)
- 首先創建一個CSS文件,將微調家居IE6和其他版本低於
- 然後創建將處理一切爲了IE7
- 最後一個CSS文件,創建一個CSS文件,將處理一切爲IE8的IE版本和更高
- 一旦IE9出來,一定要設置IE8 +搬運到IE8具體,創建IE9 + CSS文件,需要修復
- 最後,創建了WebKit的修復
- 如果需要,您還可以創建其他網絡附加CSS文件如果需要的話
關於特定瀏覽器CSS實現,我一般組中的所有那些在我的主css文件的LES專門針對Chrome或Safari(你可以很容易地做一個搜索那些和一個文件替換它們如果需要的話)。因此,如果某件事必須透明,我會在同一個塊中設置不透明度和過濾器(MSIE)。瀏覽器只是忽略他們不支持的實現,所以你的安全。我傾向於避免的具體實現是自定義實現(嘿,我喜歡W3C之上的-moz框,但我只是不想依賴它)。
隨着CSS繼承和覆蓋,你不必重新定義每個CSS文件中的所有CSS聲明和定義。每個連續加載的CSS文件應僅包含包含修復程序所需的選擇器和特定定義,而不包含其他內容。
你最終得到的結果是你的(巨大的)主css文件和其他文件,其中包含幾行代碼,用於特定的瀏覽器修復 - 總結一些不太難以維護和跟蹤的內容。這是一個個人偏好,你的基本CSS文件將基於什麼瀏覽器,但通常你會針對一個瀏覽器,爲其他瀏覽器創造最少的問題(所以是的,開發IE6將是一個非常糟糕的決定,在那點)。
一如既往,遵循良好的實踐並且謹慎地選擇每個類和使用框架的選擇器和細節將會帶領你走向善良的道路,但很少需要修復。除非你想結束無序的無意義的混亂,否則構建你的CSS文件是一個巨大的優勢。
下劃線前綴是無效的CSS,所以不會以任何方式安全。使用IE6的「* html」黑客入侵。 – bobince 2009-02-02 18:58:48
應該先添加最小值或最大值,然後用_height或_width值進行覆蓋......這將允許您設置最小/最大值,然後對最佳處理IE6缺少最小/最大值的值進行硬編碼。 – scunliffe 2009-02-02 19:00:30