2011-02-23 50 views
1

首先,我已經閱讀下面的文章,剛刷上的問題,我以前也處理得:CSS hasLayout的IE7錯誤

Position Relative/Absolute/Fixed in IE

http://www.brunildo.org/test/IE_raf3.html

http://www.satzansatz.de/cssd/onhavinglayout.html

對於一些有這些問題的人可能是新的和上述將有所幫助,但在我的情況下,我有以下在所有非IE瀏覽器:

http://cl.ly/4n6F [圖]

而在IE7下

http://cl.ly/4nYm [圖]

我明白,我需要觸發的大棕<div id="footer">hasLayout = true,因爲它是position: relative這是在IE7觸發hasLayout = false 。我試過zoom: 1display: inline-block試圖觸發#footer上的hasLayout,但沒有成功。

下面是該網站住您的觀賞樂趣:http://hannahnour.co

消失DIV的原因是hasLayout的是目前false#footer

我該如何觸發它?

+1

設置測試頁面確實可以幫助您快速得到答案。 – ifaour 2011-02-23 20:27:50

+0

不需要測試,看看上面的實況網站,我已經添加了鏈接 – Brian 2011-02-23 20:29:41

回答

2

@sweetroll是正確的,這與hasLayout無關。

問題出在/wp/wp-content/themes/custom_bellydance_theme/style.css之內。

你有兩條線路(具體線路354438)含有一種filter規則:

filter: progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand', /* IE6,IE7 */ 
         M11=0.9986295347545738, M12=0.05233595624294383, M21=-0.05233595624294383, M22=0.9986295347545738); 

看似之後要麼這些線中的任意CSS不被IE7解析。

如果您刪除了這兩行,那麼您的網站在IE7中是固定的。

我不知道這些線路的實際問題是什麼。我嘗試刪除這些內容中的/* */評論,但這沒有什麼區別。

我建議最好的辦法就是忘記把日期懸停在IE6/7上。這並不重要,只有兩個不重要的瀏覽器。如果這是不可接受的,你可以提出另一個問題,看看是否有人知道這個的原因(如果你這樣做,請確保你鏈接到這個問題)

我很高興你決定鏈接到您的網站。

對於任何人來說,它本來會是不可能的

+0

事實上,我很高興我發佈了一個鏈接......非常感謝你和@sweetroll。你是對的,因爲它調試非常困難。向你致敬! – Brian 2011-02-24 03:18:50

+0

這是沒有問題的。我在這方面學到了一些新東西:我從來沒有遇到過濾規則破壞IE7的情況。 – thirtydot 2011-02-24 03:20:36

+0

哇,我花了好幾個小時試圖弄清楚IE7類似的錯誤定位一個div(然後移動div,當我點擊它),並且它似乎與我的CSS的「過濾器」行有關。謝謝。 – Ryan 2012-10-01 18:27:58

3

它不是一個hasLayout問題。你需要驗證你的標記。它看起來像你自己關閉一個標籤,然後再添加一個結束標籤,這使得IE漏洞。你還有一個額外的閉合div標籤,它將定義打破你的佈局。

像Firefox和Chrome瀏覽器和足夠聰明,以呈現那裏問題正確,但它仍然是一個好主意,有有效的代碼。

希望這會有所幫助!

+0

感謝您的幫助@thirtydot以上能夠弄清楚,雖然我確實修復了這些嵌套問題,謝謝! – Brian 2011-02-24 03:19:26