2011-06-23 56 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