相容IE6 IE7 Firefox的CSS

來源:互聯網
上載者:User

由於ie對!important識別存在bug,而現在大部分網頁標準設計師又通過這個bug來相容ie和ff,但是ie7.0把這個bug給修複了,所以問題又出現了,怎麼相容ie.7.0的同時又能相容ie6.0和ff?正所謂"上有政策,下有對策",國外的網頁標準設計師通過使用css filter的辦法(並不是css hack)來相容ie7.0,ie6.0和ff,以下為我從國外網站的翻譯.
建立一個css樣式如下:
#item {
    width: 200px;
    height: 200px;
    background: red;

建立一個div,並使用前面定義的css的樣式:
<div id="item">some text here</div> 
在body表現這裡加入lang屬性,中文為zh:
<body lang="en"> 
現在對div元素再定義一個樣式:
*:lang(en) #item{
    background:green !important;

這樣做是為了用!important覆蓋原來的css樣式,由於:lang選取器ie7.0並不支援,所以對這句話不會有任何作用,於是也達到了ie6.0下同樣的效果,但是很不幸地的是,safari同樣不支援此屬性,所以需要加入以下css樣式:
#item:empty {
    background: green !important

:empty選取器為css3的規範,儘管safari並不支援此規範,但是還是會選擇此元素,不管是否此元素存在,現在綠色會現在在除ie各版本以外的瀏覽器上,並在以下瀏覽器和作業系統下通過測試:
ie7 beta 2 preview/win
ie5.01+/win
firefox 1.5/win
opera 8.5/win & linux
netscape 7.01, 8/win
mozilla 1.7.12/win & linux
safari 2/mac
firefox 1.0.4/linux
epiphany 1.4.8/linux
galeon 1.3.20/linux


按照遠作者的說法其實這不能算是一種hack,應該屬於filter,不過這似乎並不是最重要的,因為通過這個辦法,我們又一次瞭解決IE6.0,IE7.0和其他瀏覽器之間的相容性問題,而且使用:lang-filter這辦法,在今後的一段時間內都會有用 

相關文章

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.