解決IE5/IE5.5/IE6/FF的相容性問題——CSS_經驗交流

來源:互聯網
上載者:User
轉自 藍色理想
作者 bias
原文地址 http://www.blueidea.com/tech/site/2006/3296.asp
之前找了幾個不同版本的可獨立啟動並執行IE瀏覽器,正好拿來試試頁面的相容性問題。不試不知道,在IE6和FF中沒問題的頁面在IE5和IE5.5中亂成一團,一直聽說IE5是WEB標準製作的一個“釘子戶”,現在不得不相信了。

既然有問題,那就找找解決的方法咯,在網上一搜,相關的文章還是不少的,覺得最直接的方法還是“IE條件注釋”,很方便的就能為IE的不同版本寫樣式。但這樣就得為每個版本寫一個樣式,不利於檔案的最佳化。

找了一些相關的CSS HACK後,覺得應該可以把IE5/IE5.5/IE6/FF的HACK寫到一起的,經過測試,終於找到了一個不錯的方法,下面我們來看看怎麼實現:
大家都知道用!important聲明可以提升指定樣式規則的應用優先權,如下面的例子:
-------------------------------------------------

複製代碼 代碼如下:

E1{  background-color: red !important;/*提升優先權*/  background-color: blue;  }

-------------------------------------------------

但這樣寫在IE中會有個問題,看過我的《關於CSS樣式表優先順序》和《關於CSS樣式表優先順序補遺》,你會知道在IE6和FF中用!important聲明可以提高優先順序別,但在IE6中的!important聲明並不是絕對的,它會被之後的同名屬性定義所替換。也就是說在上面的例子中,IE6所應用的是最後一個背景色的值,即“blue”;而在FF中背景色的值為“red”。根據這一點,我們就可以把FF和IE的樣式分離開。
OK ,解決了FF和IE的問題,現在來解決IE自己的問題。
看過了嘟嘟的《繞過IE6支援IE5的別一種寫法-IE也支援">"》後有感而發,使用“>”IE是否真的可以認得?我們來看個例子:
-------------------------------------------------

E1{  background-color: red;  >background-color: blue;

}
-------------------------------------------------

在FF中得到的是背景色紅色,而在IE中得到的背景色是藍色,根據樣式重定義的規則,如果瀏覽器可以識別“>”,則應該得到的藍色的背景,因此可以知道“>”只有IE可以識別,這點是很重要的哦!在後面大家就會知道了。(註:我測試過其它的一些符號,如“~”、“`”、“

-------------------------------------------------

這樣不就又可以省下幾個位元組?是沒錯,可是HACK不是標準,如果濫用HACK,那隻會離標準越來越遠!


以上就是解決IE5/IE5.5/IE6/FF的相容性問題——CSS_經驗交流的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 相關文章

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.