IE6中的下拉菜单“闪烁”

时间:2009-04-22 17:26:22

标签: html css internet-explorer-6

我正在尝试根据Stu Nicholls创建一个下拉菜单:http://www.cssplay.co.uk/menus/pro_drop8.html

我需要查看选择下拉列表并符合IE6 / 7标准,这就是我使用所有这些iFrame废话的原因。更改z-index不会修复它,因为IE设置了无限的zindex值来选择下拉列表。

所以我的问题是,如果我从网站到我的应用程序的下拉菜单中复制并粘贴(从字面上看,没有做出任何更改)它将在除IE6之外的所有内容中正常工作,它将“闪烁”。这意味着每当您将鼠标悬停在不同的菜单条目上时,它将在一小段时间内消失,然后再次出现。我认为这是因为IE6认为你实际上不再徘徊在菜单上了。

我尝试了所有内容并浏览谷歌数小时而没有找到下拉菜单工作。你知道什么可能导致这个问题(也许是如何解决它)?

谢谢 -

5 个答案:

答案 0 :(得分:1)

有时,IE的haslayout属性存在问题。一个快速简单的解决方法是设置:

height: 1%;

答案 1 :(得分:1)

我讨厌建议你使用其他东西的“那个人”,所以如果你开始使用Nicholls的代码,不要试试这个。但如果您没有在Stu Nicholls的下拉菜单中出售,您可以查看YUI's menus。我特别提到那些因为我在iframe-to-fix-ie6-bugs支持方面取得了巨大的成功。 (至少,您可以使用他们的示例代码来查看IE6是否与其他人的下拉菜单表现得很好,或者只是与Nicholls有关。)

答案 2 :(得分:0)

我不知道这是否是您所需要的,但jQuery bgiframe plugin可以非常干净地处理选择问题,因此您无需手动完成所有操作。

希望有所帮助。

答案 3 :(得分:0)

好的我找到了解决问题的方法。我正在使用Chrome下拉菜单:http://www.dynamicdrive.com/dynamicindex1/chrome/index.htm

代码简单,美观且完美。我很难定制它,但现在它完成了,我的生活好多了:

<div class="chromestyle" id="chromemenu">
<ul>
<li><a href="http://www.dynamicdrive.com">Home</a></li>
<li><a href="#" rel="dropmenu1">Resources</a></li>
<li><a href="#" rel="dropmenu2">News</a></li>
</ul>
</div>

<!--1st drop down menu --> 
<div id="dropmenu1" class="dropmenudiv">
<a href="http://www.dynamicdrive.com/">Dynamic Drive</a>
<a href="http://www.cssdrive.com">CSS Drive</a>
<a href="http://www.javascriptkit.com">JavaScript Kit</a>
</div>


<!--2nd drop down menu --> 
<div id="dropmenu2" class="dropmenudiv" style="width: 150px;">
<a href="http://www.cnn.com/">CNN</a>
<a href="http://www.msnbc.com">MSNBC</a>
<a href="http://news.bbc.co.uk">BBC News</a>
</div>

<script type="text/javascript">
cssdropdown.startchrome("chromemenu")
</script>

答案 4 :(得分:-1)

IE使用与其他浏览器不同的事件触发器。尝试为鼠标输出:

        //browser sniff
        if (navigator.appName == "Microsoft Internet Explorer") {
            document.getElementById('yourtriggerid').onmouseleave = function() {
                document.getElementById('themenuid').style.display = "none";
            };
        } else {
            document.getElementById('yourtriggerid').onmouseout = function() {
                document.getElementById('themenuid').style.display = "none";
            };
        }

'yourtriggerid'是您要触发事件的任何内容,然后'themenuid'是您要隐藏和显示的菜单/绝对定位div。

键是onmouseleave来触发IE的事件。希望这有助于某人!