2011-06-23 52 views
0

我知道IE6有一個問題:懸停可見性和子選擇器,但不明白爲什麼我的子菜單不下降?我已經包含代碼,並會很感激,如果有人能告訴我我的錯誤在哪裏?這是從之前收到的回覆收到的回覆。你會注意到我已經嘗試了htc文件的行爲,那對我也不適用。謝謝在IE6子菜單中沒有下降的菜單列表

<ul id="navigation" class="nav-main"> 
      <li><a href="http://www.somedomain.com/">Home</a></li> 
      <li class="list"><a href="#">Freebies</a> 
      <ul class="nav-sub"> 
      <li><a href="http://www.somedomain.com/category/backgrounds/">Backgrounds</a></li> 
      <li><a href="http://www.somedomain.com/category/buttons/">Buttons</a></li> 
      <li><a href="http://www.somedomain.com/category/graphics/">Graphics</a></li> 
      <li><a href="http://www.somedomain.com/category/html-css/">HTML &amp; CSS</a></li> 
      <li><a href="http://www.somedomain.com/category/icons/">Icons</a></li> 
      <li><a href="http://www.somedomain.com/category/psd/">PSD</a></li> 
      <li><a href="http://www.somedomain.com/category/templates/">Templates</a></li> 
      <li><a href="http://www.somedomain.com/category/tutorials/">Tutorials</a></li>  
      </ul> 
      </li> 

      <li class="list"><a href="#">About</a> 
      <ul class="nav-sub"> 
      <li><a href="http://www.somedomain.com/about/">AboutUs</a></li> 
      <li><a href="http://www.somedomain.com/commercial-use/">Commercial Use</a></li> 
      <li><a href="http://www.somedomain.com/about/terms-of-use/">Terms Of Use</a></li> 
      </ul> 
      </li> 

      <li><a href="http://www.somedomain.com/advertise/">Advertise</a></li> 
      <li><a href="http://www.somedomain.com/contact/">Contact</a></li> 


     </ul> 


body { 

    behavior: url(csshover3.htc); 
} 

#navigation { 
    margin:0; 
    padding: 0; 
    clear:both; 
    width:999px; 
    height:51px; 
    background: #d6eaf8 url(../images/dropdown-bg.gif) repeat-x left top; 
} 


ul.nav-main, 
ul.nav-main li { 
    list-style: none; 
    margin: 0; 
    padding: 0; 
} 


ul.nav-main { 
    position: relative; 
    z-index: 597; 
} 

ul.nav-main li:hover > ul { 
    visibility: visible; 

} 


ul.nav-main li.hover, 
ul.nav-main li:hover { 
    position: relative; 
    z-index: 599; 
    cursor: pointer; 
    background: url(../images/dropdown-bg-hover.gif) repeat-x left top; 

} 



ul.nav-main li { 
    float:left; 
    display:inline-block ; 
    height: 100%; 
    color: #999; 
    font: 14px Tahoma, Verdana, Arial, Helvetica, sans-serif; 
    background: url(../images/separator.gif) no-repeat right center; 

} 

ul.nav-main li a { 
    display:inline-block; 
    padding: 16px 16px 0 16px; 
    height: 35px; 
    color: #fff; 
    font: 14px Tahoma, Verdana, Arial, Helvetica, sans-serif; 
    text-decoration:none; 
} 

ul.nav-main li a:hover { 
    color:#D6D6D6; 

} 



ul.nav-main *.list { 
    padding-right: 22px; 
    background: url(../images/navigation-arrow.gif) no-repeat right top; 
} 



ul.nav-sub { 
    display:block; 
    position: absolute; 
    padding:10px; 
    top: 48px; 
    left: 0; 
    z-index: 598; 
    background: #353535 url(../images/dropdown-list-bg.gif) repeat-x left top; 
    border-right: 1px solid #000; 
    border-bottom: 1px solid #000; 
    border-left: 1px solid #000; 

} 


ul.nav-sub li { 
    list-style:none; 
    display:block; 
    padding: 0; 
    height: 27px; 
    float: none; 
    width:145px; 
    border-bottom: 1px solid #5a5a5a; 
    background: none; 

} 

ul.nav-sub li a { 
    list-style:none; 
    display:none; 
    padding: 6px 5px 6px 5px; 
    height: 15px; 
    float: none; 
    width:145px; 
    background: none; 
    font: 12px Tahoma, Verdana, Arial, Helvetica, sans-serif; 

} 

ul.nav-main li:hover ul.nav-sub {  display:none; /* OR display:list-item */ } 
+0

你可以發佈一個[JSFiddle](http://jsfiddle.net/)與您的HTML和CSS?看到你的標記會容易得多。 –

+0

@chris我用我的html更新了我的代碼。謝謝 – bollo

回答

0

銘記你已經在使用Whatever:hover ..

沒有實際測試在IE6中,有一個問題,我可以看到:

ul.nav-main li:hover > ul { 
    visibility: visible; 
} 

這是使用>(該direct child selector),這是not implemented in IE6

嘗試用ul.nav-main li:hover ulul.nav-main li:hover .nav-sub替換該選擇器。

+0

使用ul.nav-main li:hover .nav-sub已經使子顯示,但沒有列表中的子。 – bollo

+0

對你的代碼做了一點補充,現在它可以工作。改變了ul.nav-sub li a從display:none到display:block和voila,ie6中的一個下拉列表沒有js :-)我喜歡它,當一個計劃走到一起時:-)感謝你的幫助 – bollo

+0

感謝大家爲你幫助。 – bollo

1

如果您的內容已經在錨標籤周圍,您可以嘗試更改CSS以將懸停屬性附加到錨,而不是李的。但是,它可能仍然有問題。

如果這不起作用,請嘗試添加display:inline-block到定位標記。否則,你將不得不用JavaScript來破解它。

<li><a>content</a></li> 

ul.nav-main li a:hover > ul { 
    visibility: visible; 

} 


ul.nav-main li a.hover, 
ul.nav-main li a:hover { 
    position: relative; 
    z-index: 599; 
    cursor: pointer; 
    background: url(../images/dropdown-bg-hover.gif) repeat-x left top; 

} 

就是這樣的。除了錨標籤之外,懸停屬性在早期版本的IE中都存在問題。您還可替代嘗試是這樣的:

http://www.danvega.org/blog/index.cfm/2008/1/1/CSS-hover-selector

+0

我還沒有錨標籤?

  • HTML & CSS
  • 還是我誤解了你?謝謝 – bollo

    +0

    您不能使用:hover僞類以外的其他任何東西,而不使用JS對它進行黑客攻擊。在發佈之前,我沒有看到您的HTML - 但解決方案仍然相同。爲已發佈的HTML編輯答案。 –

    +0

    嗯,所以JS或jQuery是唯一的方式去與此?有沒有其他選擇作爲您發佈的鏈接,我已經使用htc文件方法,並且不起作用。謝謝 – bollo

    1

    您將需要使用一些Javascsript的IE6。

    li:hover是你的問題。 IE6只支持錨標籤懸停(也可能是某種形式的元素,我現在不記得,但絕對不是<li> S)

    +0

    你有鏈接的例子嗎?那該如何影響那些JS被禁用的用戶呢?謝謝 – bollo

    +0

    'body {behavior:url(csshover3.htc); }' - 他已經在使用這個:http://peterned.home.xs4all.nl/csshover.html – thirtydot

    +0

    我沒有一個例子。這個想法是複製:hover psuedo類所做的。因此,對於IE6,可以使用mouseover和mouseout *事件來添加和移除要模擬懸停的元素的類(可能是「懸停」)。 對於沒有JS開啓的IE6用戶。您可能只有其中的2個,但您有三個選項,忘記它們,默認情況下擴展菜單(使用JS隱藏它們),或者在頂級菜單項下的頁面上有輔助菜單。 *我忘記了IE中的事件,它是onmouseover還是onmouseenter? – edeverett