2011-12-27 157 views
5

菜單適用於所有主流瀏覽器,但在IE7中看起來有所不同。請參閱下面的截圖。
http://jsfiddle.net/FQLdm/6/CSS菜單IE7問題

當你將鼠標懸停在家鄉鏈路 檢查演示,你會看到一個子菜單。在IE7中,菜單按鈕和子菜單都被推上了。

這件事發生時我更換此

.menu1 ul.menu li{ 
    position: relative; 
    list-style-type: none; 
    display:block; 
    float:left; 
} 

(我需要用這種方式inline-block居中列表項)

.menu1 ul.menu li{ 
    position: relative; 
    list-style-type: none; 
    display:inline; 
    display:inline-block; 
    *display:inline; /*IE7*/ 
    *zoom:1; /*IE7*/ 
} 

在Chrome中看起來好像沒什麼 In chrome it works fine

在IE7中它看起來不同。請注意主頁按鈕的起始位置。它應該看起來像上面的鉻屏幕截圖。

In IE7 it looks different

+0

這很可能是某種保證金問題。你有一個重置CSS腳本?我肯定不能100%,但似乎這個子菜單是「推高」主菜單項,就像我之前說過的,這很可能是某種保證金問題。 – Matt 2011-12-27 08:15:26

+0

@matt我已經有一個CSS重置。這不是問題。這隻發生在我使用'inline-block'而不是'block'時。閱讀 – Pinkie 2011-12-27 08:24:13

+0

ohhh我完全錯過了:p,這是因爲IE7並不真正支持內聯塊。它只來自IE8 +。也許使用float:留下一個空白左邊? – Matt 2011-12-27 08:35:46

回答

3

在您的li中寫vertical-align:middle。像這樣:

.menu1 ul.menu li{ 
    vertical-align:middle; 
    position: relative; 
    list-style-type: none; 
    display:inline; 
    display:inline-block; 
    *display:inline; /*IE7*/ 
    *zoom:1; /*IE7*/ 

} 
+0

這是完美的。垂直對齊確實是問題。有用。 Thanksss – Pinkie 2011-12-27 09:49:07

0

像這樣

把它在當年的html文件頭

<!--[if lte IE 7]> 
    <style> 
    .menu1 ul li ul { 
     position:absolute; 
     top: 5px or 10px; 
    } 
    .menu1 { 
     position: relative; 
    } 
    </style>   
<![endif]--> 
+0

這不起作用。你應該在jsfiddle中嘗試。 – Pinkie 2011-12-27 08:24:36

+0

http://jsfiddle.net/amkrtchyan/qzNKd/ 在我ie7它工作正常 – 2011-12-27 08:32:20

+0

是的,我注意到了。不要在jsfiddle上嘗試。他們似乎在內部的標準瀏覽器上執行此操作。只需在本地複製和粘貼css和html並試試 – Pinkie 2011-12-27 08:38:23

1

enter image description here

例正常工作在IE7我的電腦上。

+0

可能是評論而不是答案:) – sandeep 2011-12-27 09:09:08

+0

是它的評論 – 2011-12-27 09:10:48

+0

所以把它寫爲評論框中的評論而不是答案 – sandeep 2011-12-27 09:12:47

0

請教這樣的回答:IE6 extra padding on bottom

而且,不設置display:block有時會導致填充的問題,因爲它爲我做了一次。嘗試將其添加到CSS以查看是否有任何改進。