【问题标题】:Menu list in IE6 sub not droppingIE6 sub中的菜单列表没有下降
【发布时间】:2011-09-18 16:32:33
【问题描述】:

在 IE6 中,菜单显示为子菜单。我已经拍了照片来显示这个问题。根据 superpreview,所有元素都有布局并且看不到问题所在。会感谢一些建议,因为我在 css 方面没有那么丰富的经验,因此我的帖子。非常感谢。

屏幕截图:

http://img36.imageshack.us/i/ie8menugrab.png/

http://img546.imageshack.us/i/ie6menugrab.png/

HTML

<div id="headermenu">


      <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>


  </div>

标题菜单 CSS

#headermenu  {

  width: 999px;
  height:51px;
  margin: 0 auto;
  /*background-image: url(../images/headermenu.gif);*/
    background-position: center center;
  background-repeat: no-repeat;
}

菜单 CSS

#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:block;
    height: 51px;
    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: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 {
    visibility: hidden;
    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:block;
    padding: 6px 5px 6px 5px;
    height: 15px;
    float: none;
    width:145px;
    background: none;
    font: 12px Tahoma, Verdana, Arial, Helvetica, sans-serif;   
}

【问题讨论】:

  • 我的建议:放弃对 IE6 的支持——它会为你省去很多痛苦。
  • 希望我能。闪烁的 PITA。他需要迎合每一个浏览器:-(
  • 如果我的一个客户坚持支持IE6,我告诉他这会增加开发成本并减少功能。这通常足以劝阻他们。如果他们要求“每个浏览器”,他们只是很傻——他们包括 IE5 吗? IE4?网景?你往后走多远? IE6 的市场份额在去年几乎消失了;真的没有充分的理由再支持它了。 (现在连 IE7 也开始淡出人们的视线了)
  • @Spudley:别忘了telnet to port 80,完全支持闪存。

标签: html css internet-explorer internet-explorer-6


【解决方案1】:

尝试使用更多规则:

ul.nav-sub{
    display:none;
}

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

【讨论】:

  • 我已经尝试了各种方式与您的建议,菜单仍然相同。谢谢
  • 我做了一个更正,因为我犯了一个错误,这应该可以工作...如果不是我也期待答案...
  • 看看 :-) 还是一样。这是使用的: ul.nav-main li:hover ul.nav-sub { display:block; /* 或显示:列表项 */ } ul.nav-sub { 可见性:隐藏;位置:绝对;显示:无;填充:10px;顶部:48px;左:0; z 指数:598;背景:#353535 url(../images/dropdown-list-bg.gif) 重复-x 左上角;右边框:1px 实心#000;边框底部:1px 实心#000;左边框:1px 实心#000; }
  • 回到这个。我相信IE6中的问题与锚标签有关?有从正文加载的 HTC 文件?有人知道吗?谢谢
【解决方案2】:

您的代码包括:

ul.nav-main li:hover > ul { ... }

您正在使用 IE6 不支持的直接子选择器 (&gt;)。

另外,IE6 仅支持 &lt;a&gt; 元素上的 :hover,因此 li:hover 在 IE6 中不起作用。

幸运的是,有一个解决方法,以名为Whatever:Hover 的 HTC 文件的形式。

要使用 What:Hover,请从上面链接的页面下载 htc 文件,然后将以下内容添加到您的 CSS:

body {
    behavior:url("scripts/csshover.htc");
}

(为了便于阅读,最好在样式表的顶部,但不管它在哪个 CSS 文件中)

希望对您有所帮助。

【讨论】:

  • @spudley 当菜单首次显示而不是悬停时会发生这种情况。 > 选择器的解决方法是什么?非常感谢
  • &gt; 的解决方法只是一个空格选择器。但正如您可能已经知道的那样,它并不相同,因此如果您有嵌套列表,则必须为每个 &lt;ul&gt;&lt;li&gt; 添加一个类,这样您就可以正确引用它们而不会产生任何歧义。跨度>
  • @spudley。我在每个元素上都试过
  • somedomain.com/category/backgrounds/">Backgrounds</…> 但还是一样。谢谢
  • 回到这个。我相信IE6中的问题与锚标签有关?有从正文加载的 HTC 文件?有人知道吗?谢谢
  • @bollo:是的!我已经编辑了答案以在 IE6 中包含有关 :hover 的信息。 :)
  • 【解决方案3】:

    更改您的 ul.nav-main li a 规则:

    • display设置为inline-block
    • height 设置为100%

    这样布局是正确的,但在 IE6 中菜单会有点太高(双填充错误)。我不知道这对下拉菜单有何影响,因为我只在 SuperPreview 中对其进行了测试。

    Lex 是对的,子菜单使用display:none/block 而不是visibility:hidden/visible

    【讨论】:

    • 请注意,inline-block 在 IE6(和 IE7)中有一些严重的错误。使用它,但一定要测试它。
    • @molnarm。一个人应该如何认真对待超级预览?例如,如果选择 8 作为基本浏览器,然后作为目标使用 8>7 或 7,它看起来很好。在 ie8 中,如果我使用 comp 模式,它不会显示相同。
    • @bollo 我不知道,但应该是一样的,因为 SP 内置了 IE6 渲染引擎,它使用您计算机上安装的 IE 版本来生成 IE7、8 和 9 预览。
    • @molnarm。这正是正在发生的事情。 SP 显示正确的标记,并且每个元素在 DOM 中都有布局,但在 IE8 中没有处于 comp 模式。我无法访问 6/7 进行测试。去图:-)
    • @bollo IE8 comp 模式是当它假装是一个比实际更糟糕的浏览器时,对吧?为什么有人想使用它来查看您的页面?无论如何,如果你想看到真实的浏览器渲染,试试browsershots.org
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签