2011-04-18 48 views
2

我被要求修復我們公司另一名員工創建的一些CSS。該代碼包含以下內容:在IE6之後,我仍然需要使用這個CSS瀏覽器嗎?

div#bwrap { 
    position: absolute; bottom:35px; left:120px; right: 60px; height:10px; 
} body>div#bwrap {position:fixed;} 

和:

div#mwrap { 
    margin-left:0; 
    voice-family: "\"}\""; 
    voice-family:inherit; 
    margin-left:16px;padding: 85px 60px 35px 240px; 
    font-family: Segoe UI,Tahoma,Verdana,Arial,sans-serif; 
} body > div#mwrap { height: 500px; margin-left:0; } 

我明白這個代碼是舊版本瀏覽器,但沒有人知道哪些是解決問題的。例如,如果是IE6或更早版本,那麼我們公司不再使用該瀏覽器。

我是否還需要:

body>div#bwrap {position:fixed;} 

and 

voice-family: "\"}\""; 
     voice-family:inherit; 
+1

可能不是,但你不能創建一個副本並嘗試它嗎? – Rhapsody 2011-04-18 14:13:24

回答

3

IE6不支持>選擇器,因此在IE6中對body>div#bwrap的引用將不起作用。

由於它們與其上的主要選擇器div#bwrap有效相同,這意味着body>div#bwrap內的位是IE6以外的瀏覽器的覆蓋。

在第一個示例中,IE6將生成一個位置爲absolute的元素,而所有其他瀏覽器將其定位爲fixed。如果您不再支持IE6,則可以將該樣式移動到主要的div#bwrap選擇器中,並刪除body>div#bwrap

您可以瞭解更多支持CSS選擇在這裏不同的瀏覽器:http://quirksmode.org/css/contents.html

voice-family位是一個黑客,它告訴砍死瀏覽器忽略在選擇樣式的休息。它也是IE6特有的,所以如果你再次放棄IE6支持,你可以放棄黑客攻擊。你可以找到更多關於這個黑客在這裏:http://tantek.com/CSS/Examples/boxmodelhack.html

第二個例子也有一個匹配>選擇,你需要以同樣的方式作爲第一個例子來治療,雖然margin-left在兩個指定反正(因爲他們我正在使用這種分離IE6的方法,我不知道他們爲什麼還會爲語音族破解而煩惱)。

1

語音系列/盒模型黑客絕對是舊的瀏覽器(如IE 5,老)。更多的信息可以在here找到。

我不確定的定位。 Here's some information可能屬於它。特別是,「IE> = 6」部分,它提到了一個黑客並指出它打破了position: absolute;。如果沒有上下文,並且考慮到格式,我認爲它也是一個較老的版本。我會說出它的評論,並檢查IE7/8,看看它是否影響它。我認爲IE8有開發者工具(比如Firefox的Firebug插件),但我不確定IE7,但如果它們可用,也可以檢查它們。

+0

謝謝。我將刪除語音家族的黑客。現在另一個我不確定的黑客。你提到它是針對IE6的,但我想知道是否需要IE7或IE8。我受限於我沒有舊版瀏覽器的版本,但我的公司中有用戶可以這樣做。 – JudyJ 2011-04-18 14:26:22

0

我的意見可能是多餘的,但這裏有我的觀點考慮:

  1. DIV#bwrap(你通常不需要「DIV」位,它的清潔忽略它。)
  2. 語音系列的部分是,如前所述,一個真正的老黑客,應予刪除
  3. 如果你明確不支持IE6,你可能不需要孩子選擇「>」在所有
  4. 位置固定不工作的一些WebKit瀏覽器像移動Safari

如果你需要支持IE6那麼孩子選擇是你最好的朋友:

  • #bwrap {...所有的瀏覽器 - 包括IE6。 ..}
  • HTML>體#bwrap {...現代控制裝置:火狐,Safari,歌劇,IE7 + ...}

只是實現了 '現代超越' 如果你真的需要修復它在IE6。

相關問題