IE6 CSS Hover问题菜单

Tal*_*Tal 2 html css compatibility hover internet-explorer-6

我有一个CSS悬停菜单,适用于所有浏览器,除了...惊喜 - IE6!

#menu_right ul li:hover ul { visibility: visible; }
Run Code Online (Sandbox Code Playgroud)

ul显然,这最初是隐藏的.当我将鼠标悬停在其父级上时li,它应该显示...但它没有.

为了确定问题,我尝试使ul最初可见并让悬停动作采取其他措施.例如:

#menu_right ul li ul { visibility: visible; }

#menu_right ul li:hover ul { background: red; }
Run Code Online (Sandbox Code Playgroud)

这没有用.在其他浏览器(包括IE7 +)上,ul当我将鼠标悬停在其父级上时,它将变为红色list element.但不是在IE6中.我错过了什么?

Bol*_*wyn 7

IE6不知道CSS :hover伪属性,当它出现在任何链接元素上时.你必须使用JavaScript.尝试使用条件语句,如果使用jQuery,则可以在3(+/-格式化)行中编写IE6的悬停效果:

<!--[if lt IE 7]>
<script type="text/javascript">
$('#menu_right ul li').hover (function () {
  $(this).addClass ("hover");
}, function () {
  $(this).removeClass ("hover");
});
</script>
<style type="text/css">
#menu_right ul li.hover {...}
...
</style>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

Mark,在CSS语句中我使用了点而不是冒号.

干杯,

  • 您也可以使用`<a>`而不是`<li>`; 不再需要Javascript,尽管你必须跳过很多其他的循环试图让`<a>`标签呈现类似的`<li>`(破碎的`display:inline-block`支持.. .Gaah HATE IE). (2认同)