2012-07-18 42 views
3

我試圖讓一個suckerfish風格的下拉菜單在IE6中使用任何工作:懸停但不能爲我的生活得到第三級顯示!它驅使我瘋狂的任何幫助,將不勝感激。:懸停無法獲得第三個菜單級別顯示在IE6

My fiddle

繼承人的代碼 HTML:

<!DOCTYPE html> 
<html> 
    <body> 
     <header> 
      <link rel="stylesheet" type="text/css" href="styleIE.css" /> 
     </header> 
     <form> 
      <div id="container"> 
       <div id = "menu"> 
        <ul id="nav"> 
         <li><a class="rhlinkstart" href="#"><span>Home</span></a></li> 
         <li><a class="rhlink" href="#"><span>Blad<br> Securities</span></a></li> 
         <li><a class="rhlink" href="#"><span>Market<br> Update</span></a></li> 
         <li><a class="rhlink" href="#"><span>Membership</span></a></li> 
         <li><a class="rhlink" href="#"><span>asdasd Info</span></a> 
          <ul> 
           <li><a class="linkchild" href="#"><img class = "arrow" src="Images/arrow.gif" alt="&#9658;">About the DOOB</a> 
            <ul> 
             <li><a class="linkchild" href="#">DOOB Explained</a></li> 
             <li><a class="linkchild" href="#">DOOB Jurisdications</a></li> 
            </ul> 
           </li> 
           <li><a class="linkchild" href="#">International Recogintion</a></li> 
           <li><a class="linkchild" href="#"><img class = "arrow" src="Images/arrow.gif" alt="&#9658;">Advantages of listing</a> 
            <ul> 
             <li><a class="linkchild" href="#">Advantages of Listing</a></li> 
             <li><a class="linkchild" href="#">Offers</a></li> 
            </ul> 
           </li> 
           <li><a class="linkchild" href="#">Advantages Of Membership</a></li> 
           <li><a class="linkchild" href="#">Publications</a></li> 
           <li><a class="linkchild" href ="#">Links</a></li> 
          </ul> 
         </li> 
         <li><a class="rhlinkend" href="#"><span>Contact Us</span></a></li> 
         <li>&nbsp;</li> 
        </ul> 
       </div> 
      </div> 
     </form> 
    </body> 
</html> 

CSS:

body{ 
    line-height:1; 
    background: #e3e3e3; 
    behavior: url("csshover3.htc"); 
} 

/*------------------------------------*\ 
Main 
\*------------------------------------*/ 
div#container 
{ 
    width:1024px; 
    margin:0 auto; 
    position: relative; 
    text-align: center; 
    background-color: white; 
    border: 1px solid #8b8b8b; 
} 

.contentwrapper { 
    width: 964px; 
    margin: 0px auto; 
    text-align: left; 
    height: 100%; 
} 

.clearall { 
clear: both; 
} 


/*------------------------------------*\ 
    Home Page - Menu Styling 
\*------------------------------------*/ 

#menu { 
    margin: 0 auto; 
    padding-left: 2%; 
    height: 47px; 
    position: relative; 
    top: 0; 
    border: 1px solid rgb(140,51,61); 
    font-size: 75%; 
    display: block; 
} 
#nav { 
    margin:0; 
    padding:0; 
    list-style-type:none; 
    list-style-position:outside; 
    position:relative; 
    height:47px; 
    background: none; 
    background-color: transparent; 
    width: 100%; 
} 

#nav ul { 
    margin:0; 
    padding:0; 
    list-style-type:none; 
    list-style-position:outside; 
    position:relative; 
} 

#nav a.rhlinkstart:link, #nav a.rhlinkstart:active, #nav a.rhlinkstart:visited { 
    position: relative; 
    float:left; 
    font-family: Georgia; 
    color: rgb(131,0,26); 
    width: 148px; 
    text-align: center; 
    height: 47px; 
    margin-right: -.07em; 
    margin-left: 0.5em; 
    line-height: 47px; 
    text-decoration: none; 
} 

#nav a.rhlink:link, #nav a.rhlink:active, #nav a.rhlink:visited { 
    position: relative; 
    float:left; 
    font-family: Georgia; 
    color: rgb(131,0,26); 
    width: 148px; 
    text-align: center; 
    height: 47px; 
    margin-left: -47px; 
    line-height: 47px; 
    text-decoration: none; 
    display: block; 
} 

#nav a.rhlinkend:link, #nav a.rhlinkend:active, #nav a.rhlinkend:visited { 
    float:left; 
    position: relative; 
    color: rgb(131,0,26); 
    width: 148px; 
    height: 47px; 
    line-height: 47px; 
    margin-left: -3.780em; 
    font-family: Georgia; 
    text-decoration: none; 
} 

#nav li { 
    float:left; 
    position:relative; 
    display: block; 
} 

li a.rhlink span { 
    line-height: 1em; 
    text-decoration: none; 
    text-align: center; 
    display: inline-block; 
    vertical-align: middle; 
} 

#nav li a.rhlink:hover, 
#nav li a.rhlinkstart:hover, 
#nav li a.rhlinkend:hover 
{ 
    background: red; 
    color: white; 
    text-decoration: none; 
} 

#nav a.linkchild:link, 
#nav a.linkchild:active, 
#nav a.linkchild:visited 
{ 
    display:block; 
    padding:0px 10px; 
    text-decoration:none; 
    color: white; 
    background: pink ; 
} 

#nav a.linkchild:hover { 
    background: rgb(118,0,18); 
    color: white; 
} 

#nav ul { 
    position:absolute; 
    top:47px; 
    left:0; 
    margin: 0; 
    width:200px; 
    display:none; 
} 

#nav li ul a { 
    width:15em; 
    float:left; 
    display: inline-block; 
    line-height: 2.5em; 
    text-align: left; 
    vertical-align: middle; 
} 

#nav li { 
    display: inline-block !important; 
    float: left; 
} 

#nav li a { 
    display: inline-block !important; 
    vertical-align: middle; 
} 

#nav ul ul { 
    top:auto; 
} 

#nav li ul ul { 
    left:200px; 
    margin:0; 
} 

#nav ul ul li ul { 
    left:200px; 
    margin:0; 
} 

#nav ul ul { 
    display:none; 
} 

#nav li:hover ul { 
    display:block; 
} 

/* 2 and 13 */ 
#nav ul ul, 
#nav li:hover ul ul { 
    display:none; 
} 

/* 12 and 23*/ 
#nav li:hover ul, #nav li:hover li:hover ul { 
    display:block; 
} 
+0

不使用ie6 ........... – 2012-07-18 11:26:31

+0

多數民衆贊成有用....不...它的客戶需求 – davey 2012-07-18 11:36:04

+0

@davey - 這是你的客戶需要什麼。這可能不是他想聽到的,但這是他需要的。 – SDC 2012-07-19 15:32:27

回答

0

感謝評論傢伙,最後我重寫了菜單,並從頭開始使用IE6。我知道IE6已經死了,但我的客戶最大的客戶使用這個瀏覽器:(所以它必須做。

+1

我知道你無能爲力,但你的客戶的最大客戶可能會遇到重大問題,如果他們堅持使用IE6時間更長。在大約一年左右的時間裏,對它的支持終於完全放棄後,我預測會發生大量的攻擊,因爲黑客將能夠利用剩下的安全漏洞來保護他們不會修復的知識。 – SDC 2012-07-27 08:09:13

5

你似乎是使用HTML5而不是使用HTML5 SHIV,這將允許HTML5標籤是被舊版瀏覽器識別。

http://code.google.com/p/html5shiv/

你還加載樣式表了HTML5的「頭」內的標籤,而不是你似乎並不具備文檔的常規「頭」標籤內。

解決這些問題可能有助於解決您的問題。

+0

謝謝嘗試過,但沒有成功,代碼在IE7中工作,第二個lvl菜單項顯示在ie6中,它只是第三級別的操作員不顯示/ * 12和23 */ #nav li:hover ul,#nav li:hover li:hover ul { display:block; } – davey 2012-07-18 11:44:43

+0

你能發佈一個鏈接到你的頁面嗎? – 2012-07-18 11:46:02

+0

頁面不是活的,但我創建了一個jsfiddle.net/hQuYp/不幸的是,它並沒有達到以下行爲:url(「csshover3.htc」);無論如何:徘徊 – davey 2012-07-18 11:51:37

5

一個可能的解決方案:

display:inline-block在IE6一些嚴重的錯誤;我會建議嘗試display:inline

除此之外,您還需要做一些事情來觸發IE將元素置於「hasLayout」模式。你不能直接這樣做,因爲它是一個內部IE標誌,但設置任何一個CSS屬性都會觸發它。最常用的是zoom:1,因爲它沒有太多其他效果,並且被其他瀏覽器忽略。

如果有效,請使用IE6 CSS hack,以便其他瀏覽器可以繼續使用inline-block。我建議使用下劃線黑客或條件註釋。

下面的代碼,使用下劃線黑客:

display:inline-block; 
_display:inline; 
zoom:1; 

希望有所幫助。

[注:答案編輯成包括hasLayout的,擴大對IE6的CSS破解選項,並給一個代碼塊]

+0

我將所有內聯塊更改爲內聯,但仍然沒有任何結果! ie6是魔鬼! – davey 2012-07-20 15:39:35

+0

原來不支持內聯的舊版IE中正確的內嵌塊是'display:inline-block/*在舊IE *中不支持; * zoom:1/*觸發hasLayout * /; * display:inline/* inline + hasLayout = inline-block(!),放大之前的* inline是舊的IE黑客入侵;它一直適用於我* /' – HerrSerker 2012-07-22 10:39:06

0

在這一點上的Internet Explorer 6死了,實際上它是超越死亡。 99.9%的IE6用戶代理是機器人,我有三個誰沒有出現。我的瀏覽器市場份額基於DOM對象檢測,因此它不像基於用戶代理的統計數據那樣可靠。即使你可能被欺騙,認爲IE6實際上擁有10%的市場份額,但你仍然必須處理它已經並將繼續萎縮的事實。我甚至不打算真正測試IE7,因爲我只有一位數的訪問者使用它。在這一點上,投入到IE6/7的時間和金錢是超出任何理由的,除非客戶已經死了,並且他們不會爲了解決IE6/7特定錯誤而花費你每小時50美元。

+0

這在更廣泛的互聯網上是公平的,但在一些公司內部仍然不正確。有那些有遺留內部網應用程序的網站,它們不適用於> IE6,因此他們必須繼續使用它。我知道曾經花費超過50萬美元的大型組織試圖在Win7上使用IE6。 – Stobor 2012-07-27 00:09:17

+0

我已經看到這一切都經常,遺留應用程序只在IE6工作 – davey 2012-07-27 15:38:46