2011-04-26 168 views
1

hello 我使用的是css菜單,它在ff和ie7/8中看起來很好,但在ie6中菜單定位不正確。它應該坐在右邊,但由於某種原因它正在向左移動。我已經包含了截圖和我的CSS菜單,並會很感激,如果有人能告訴我錯誤在哪裏?非常感謝ie6 css顯示不正確

#menu 
    { 
     width:425px; 
     height:33px; 
     float: right; 
     margin:133px 51px 0 0; 
     padding:0px; 
    } 
#menu ul 
    { 
     width:525px; 
     height:33px; 
     float:left; 
     margin:0px; 
     padding:0px; 
     display:block; 
    } 
#menu ul li 
    { 
     width:76px; 
     height:33px; 
     float:left; 
     margin:0 1px 0 0; 
     padding:0px; 
     display:block;  
    } 
#menu ul li a.menu 
    { 
     width:76px; 
     height:26px; 
     float:left; 
     margin:0px; 
     padding:7px 0 0 0; 
     font-family:Arial; 
     font-size:13px; 
     font-weight:bold; 
     color:#FFF; 
     text-align:center; 
     text-decoration:none; 
     background-image:url(../images/menu.jpg); 
     background-repeat:no-repeat; 
    } 
#menu ul li a.menu:hover 
    { 
     width:76px; 
     height:26px; 
     float:left; 
     margin:0px; 
     padding:7px 0 0 0; 
     font-family:Arial; 
     font-size:13px; 
     font-weight:bold; 
     color:#FFF; 
     text-align:center; 
     text-decoration:none; 
     background-image: url(../images/menuover.jpg); 
     background-repeat:no-repeat;   
    } 

截圖:

正確的菜單間距:http://i51.tinypic.com/9kytxf.png

不正確菜單間距:http://i54.tinypic.com/fldpow.png

+0

我不確定,但嘗試位置:相對。 – user455318 2011-04-26 22:04:24

+0

@ user455318仍然相同。謝謝 – ploppy 2011-04-26 22:06:20

+0

我意識到這沒有什麼幫助,但我覺得有義務:http://ie6countdown.com/ – Jimmy 2011-04-26 22:32:15

回答

0

我的猜測是,你的尺寸不正確添加了和IE在處理這與其他人不同。請注意,例如,#menu只有寬度425px,但其ul的寬度爲525px。所以也許FF是削減溢出,但IE不是。

嘗試從除最內層元素(例如#menu ul li a.menu)以外的所有元素中移除寬度,然後讓其餘元素自動調整大小。或者至少從刪除/固定寬度#menu開始。

+0

我從菜單div中刪除了寬度,並且它只是略微移動了它。謝謝 – ploppy 2011-04-26 22:17:46

1

這可能是老Double Margin Float Bug,當你有在同一方向上的裕度的浮動..即左浮動/左緣或右浮動/右頁邊距IE5/6是衆所周知的保證金

翻番等:

#menu { 
     width:425px; 
     height:33px; 
     float: right; 
     margin:133px 51px 0 0; 
     padding:0px; 
    } 

嘗試加入display:inline;上述規則,如果是這樣的話,它是一個安全的修復到位,讓所有其他瀏覽器正確地忽略浮動元素的顯示屬性

+0

顯示代碼分數移到右邊。謝謝 – ploppy 2011-04-26 22:16:50

0

確保你有一個親每個doctype在HTML文件的開頭使用你的CSS。 IE6的怪癖模式是可怕的!例如:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

注意到,適當的(非HTML5)的doctype將指向DTD的URL。如果您的文檔類型不正確,請修復它並查看是否有幫助。

+0

這就是我之前所擁有的。 <!DOCTYPE html PUBLIC「 - // W3C // DTD XHTML 1.0 Transitional // EN」「http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd」>謝謝 – ploppy 2011-04-27 07:52:46

+0

那麼你很樂意去用你的文檔類型。你的問題直接與CSS相關。我建議檢查文檔類型的原因是,由於沒有適當的文檔類型,這些年來我見過的許多人都成爲怪癖模式的受害者,這會導致奇怪的CSS行爲,特別是浮動。有關更多詳細信息,請參閱http://www.quirksmode.org/css/quirksmode.html。 – Trav 2011-04-27 20:54:37

+0

這仍然讓我撓頭:-) – ploppy 2011-04-27 21:09:28