3

經過測試我在Firefox,SeaMonkey,Chrome,Opera,Safari,Camino和IE8上爲我的學校建立的一個小網站後,我發現我的網站絕對定位的div都非常一致。IE6和7絕對定位問題

但是,當我開始在IE6和7測試站點時,所有的div在頁面之外都是不合適的。

我已經花了兩週的谷歌搜索,並試圖找出問題是什麼,但我仍然無法找到一致的方法來解決這個問題。

希望我已經夠清楚了,對不起,如果我的英語不太好,那是我的第三語言。

如果您需要更多的解釋,請隨時詢問。

任何和所有的幫助表示讚賞。

謝謝你的時間。

注意:如上所述,我知道有很多解決方案和類似的問題,但是,我一直無法找到適用於這種情況的解決方案。

更新:縮放屬性修復了我一直遇到的大部分問題,hasLayout似乎是一個巨大的痛苦。感謝Spudly和Patrik

+1

您是否擁有正確的文檔類型集?沒有這個,IE忽略了很多CSS。 – GrandmasterB 2011-02-02 05:40:19

+0

我使用了HTML5 Doctype,我相信它是向後兼容的。我應該使用HTML4 Doctype嗎? – 2011-02-02 05:46:50

+0

我剛剛玩過各種Doctypes,問題仍然存在。任何其他建議? – 2011-02-02 05:55:08

回答

5

這聽起來像是經典的「HasLayout」錯誤,這是每個Web開發人員生活中必須支持IE舊版本的障礙之一。

HasLayout是一個內部標誌,IE保存每個元素,以確定是否正常顯示它或奇怪的毛刺。其實這不是它真正存在的,但它似乎確實有這種效果。

解決問題的方法是迫使有問題的元素獲得HasLayout標誌。可悲的是,IE並沒有提供直接的方式來做到這一點;你必須應用觸發它的風格。

通常情況下,風格的人選擇報考這是

.myelelement { 
    zoom:1; 
} 

這種情況的原因在於,首先,zoom是IE特定的樣式表屬性,所以這不會影響任何其他瀏覽器,並其次,因爲zoom:1;是默認值,所以你實際上並沒有改變任何有關元素的內容。儘管如此,它仍然會觸發獲取HasLayout標誌的元素,因此應該可以解決您的問題。

希望有所幫助。

2

我聽說過一些老版本的IE中可能會導致你的問題的佈局屬性的錯誤......已經有類似的話題:link。試試看,我不認爲絕對定位存在問題,它可能是父親相對定位元素的缺陷。