Javascript IE8中的多级弹出菜单问题

Javascript IE8中的多级弹出菜单问题,javascript,html,css,internet-explorer,internet-explorer-8,Javascript,Html,Css,Internet Explorer,Internet Explorer 8,我在教程中制作了一个多级弹出菜单,我正在制作 除了IE8之外,它在所有浏览器中都工作得非常好,第三层就隐藏在第二层后面 有人知道问题出在哪里吗 代码如下: <div id="menu"> <div id="menu-edge"></div> <ul id="nav"> <li class="top"><a class="top_link" href="http://www.match.ac.uk"&

我在教程中制作了一个多级弹出菜单,我正在制作

除了IE8之外,它在所有浏览器中都工作得非常好,第三层就隐藏在第二层后面

有人知道问题出在哪里吗

代码如下:

    <div id="menu">
    <div id="menu-edge"></div>   

<ul id="nav">
    <li class="top"><a class="top_link" href="http://www.match.ac.uk">Home</a></li>
    <li class="top"><a class="top_link" href="/about.php">About</a>
        <ul class="sub" style="margin-left:0px;">
            <li><a class="fly" href="/theteam.php">The Team</a>
                <ul class="sub-popout">
                    <li><a href="/researchers.php">Researchers</a></li>
                    <li><a href="/management.php">Management</a></li>
                    <li><a href="/investigators.php">Investigators</a></li>
                    <li><a href="/students.php">PhD Students</a></li>                                                            
                </ul>
            </li>
            <li><a href="/vision.php">Our Vision</a></li>
            <li><a href="/strategy.php">Strategy</a></li>
            <li><a href="/achievements.php">Achievements</a></li>
            <li><a href="/literature.php">Literature</a></li>
        </ul>    
    </li>
    <li class="top"><a class="top_link" href="/membership.php">Membership</a>
        <ul class="sub" style="margin-left:0px;">
            <li><a href="/level1.php">Level 1 - Micro</a></li>
            <li><a href="/level2.php">Level 2 - SME/Division</a></li>            
            <li><a href="/level3.php">Level 3 - Large</a></li>
            <li><a href="/level1.php">Level 4 - Macro</a></li>
            <li><a href="/additional.php">Additional Services</a></li>                        
        </ul>
    <li class="top"><a class="top_link" href="/research.php">Research</a>
        <ul class="sub" style="margin-left:0px;">
            <li><a href="/projecti.php">Project I - Tools for Industry</a></li>
            <li><a href="/projectii.php">Project II - Economic Evaluation</a></li>    
            <li><a href="/projectiii.php">Project III - User Needs</a></li>
            <li><a href="/projectiv.php">Project IV - Implementation Issues</a></li>
        </ul>                
    <li class="top"><a class="top_link" href="/publications.php">Publications</a>
        <ul class="sub" style="margin-left:0px;">
            <li><a href="/2011.php">2011</a></li>
            <li><a href="/2010.php">2010</a></li>
            <li><a href="/2009.php">2009</a></li>
            <li><a href="/2008.php">2008</a></li>
            <li><a href="/2007.php">2007</a></li>
            <li><a href="/2006.php">2006</a></li>
            <li><a href="/2005.php">2005</a></li>
            <li><a href="/2004.php">2004</a></li>
            <li><a href="/deliverables.php">Deliverables</a></li>
            <li><a href="/innovative-manufacturing.php">Innovative Manufacturing</a></li>                                                                                                                    
        </ul>
    <li class="top"><a class="top_link" href="/news-events.php">News &amp; Events</a>
        <ul class="sub" style="margin-left:0px;">
            <li><a href="/news.php">News</a></li>
            <li><a href="/events.php">Events</a></li>
            <li><a href="/training.php">Training &amp; Workshops</a></li>
        </ul>                                
    <li class="top"><a class="top_link" href="/partners.php">Partners</a>
    <li class="top"><a class="top_link" href="/contact.php">Contact Us</a>
</ul>
</div>
以下是JS:

stuHover = function() {
    var cssRule;
    var newSelector;
    for (var i = 0; i < document.styleSheets.length; i++)
        for (var x = 0; x < document.styleSheets[i].rules.length ; x++)
            {
            cssRule = document.styleSheets[i].rules[x];
            if (cssRule.selectorText.indexOf("LI:hover") != -1)
            {
                 newSelector = cssRule.selectorText.replace(/LI:hover/gi, "LI.iehover");
                document.styleSheets[i].addRule(newSelector , cssRule.style.cssText);
            }
        }
    var getElm = document.getElementById("nav").getElementsByTagName("LI");
    for (var i=0; i<getElm.length; i++) {
        getElm[i].onmouseover=function() {
            this.className+=" iehover";
        }
        getElm[i].onmouseout=function() {
            this.className=this.className.replace(new RegExp(" iehover\\b"), "");
        }
    }
}
if (window.attachEvent) window.attachEvent("onload", stuHover);
stuHover=function(){
var-cssRule;
新闻选民;
for(var i=0;i对于(var i=0;i这是HTML的顶部:

<!-- header -->
<!-- SEO elements to be edited per page, enter your keywords between the "" -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
使用这些会导致溢出:隐藏的类似效果,这就是为什么你的子菜单看不到的原因。

多级CSS菜单
Multilevel CSS Menu<br>
Demo <a href="www.mremind.com">Here</a><br>
<h2>Css For Menu</h2>
<p>
/**
* MAIN NAVIGATION
**/
#mainNav {`enter code here`

    height:60px;
    margin: 0 auto;

    padding-left: 15px;
    width:1000px;
    vertical-align: middle;

    }


#mainNav  ul{
    list-style-type:block;
    list-style-image:none;
    background:red;

    margin: 0;
    padding-right: 0px;

    padding-left: 0px;

    line-height: 100%;
    -khtml-border: 1px solid #BFDBD7;



    box-shadow: 0 1px 3px rgba(0, 0, 0, .4);

    -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, .4);
    -moz-box-shadow: 0 1px 3px rgba(0,0,0, .4);

    vertical-align: middle;
    }




/************************************** Main Navigation boxes ******************************************************/
#mainNav ul li.navItems{
    float:left;
    display:inline-block;
    width:94px;
    height:60px;
    border-left:solid 1px #D7D7D7;

    }
#mainNav ul li.navItems:hover{

    background:#034693;
    }
#mainNav ul li.navItems:current{

    }   
#mainNav ul li.navItems > a{
    width:94px;
    height:60px;
    font-family:Arial, Helvetica, sans-serif;
    font-size:12px;
    color:#4D4D4D;
    display:block;
    line-height:5.5em;
    text-decoration:none;
    text-align:center;
    }
#mainNav ul li.navItems a:hover{
    color:#FFF;
    }

#mainNav ul li.navItems:hover a{
    color:#FFF;  /*keeps main nav text white upon rollover*/
    }
#mainNav ul li.navItems:hover ul a{
    color:#4D4D4D;  /*stops sublinks from being white */
    }






/* Dropdown List */

#mainNav ul li.navItems ul{
    background:#FAFAFA;
    border:1px solid #CCC;
    list-style:none;
    position:absolute;
    display:none;
    width:250px;

    z-index:100;
    }

    #mainNav ul li.navItems ul li
    {

        padding: 10px 0;
        font-size: 13px;
        line-height: 1.5em !important;
        border-bottom: 1px solid #CCC;
        white-space: nowrap;
        text-align: left;

    }
    #mainNav ul li.navItems ul li a{

    font-size: 13px;
    line-height: 1.5em !important;
    text-align: left;
    text-decoration: none;
    padding-left:5px;

    }
#mainNav ul li.navItems:hover ul li > a:hover{
    background:#034693;
    color:#FFF;
    }


    #mainNav ul li.navItems:hover ul li:hover{
    background:#034693;
    color:#FFF;
    }

    #mainNav ul li.navItems:hover ul li:hover > a{
    background:#034693;
    color:#FFF;
    }

#mainNav  ul li.navItems:hover  ul.secondul{
    display:block;
    position:absolute;
    }






/************************************** Sub Menu boxes ******************************************************/  





    #mainNav  ul.secondul li.MarketingLI:hover ul
    {

    display:block;
    position:absolute;


    }




    #mainNav  ul.secondul li.MarketingLI ul{
    width:200px;

    padding:0;
    font-size:13px;
    line-height:1.5em !important;
    border-bottom:1px solid #CCC;
    white-space:nowrap;
    text-align:left;
    display:none;
    top:0;
    margin-left:100%;

    }
</p><br>
<br>
<h2>HTML</h2><br>
<p>
<div id="mainNav">
            <ul >

                <li class="navItems"><a href=""></a> </li>
                <li class="navItems" ><a class="first" href="#"></a>


                 <ul class="secondul">
                        <li class="MarketingLI"><a class="first" href=""></a>

                        <ul >
                            <li ><a href="">2nd Level 1</a>
                            </li>

                             <li ><a href="">2nd Level 1</a>
                            </li>

                            <li ><a href="">2nd Level 1</a>
                            </li>

                        </ul>

                        </li>
                        <li><a href=""></a>
                        </li>
                        <li><a href="#"></a></li>

                    </ul>
                </li>
                <li class="navItems"><a href=""></a>
                </li>

                <li class="navItems"><a href=""></a></li>
                <li class="navItems"><a href=""></a> </li>
                <li class="navItems"><a href=""></a> </li>
            </ul>
            <!--mainNav-->
        </div>
</p>
演示
菜单的Css /** *主导航 **/ #mainNav{`在此处输入代码` 高度:60px; 保证金:0自动; 左侧填充:15px; 宽度:1000px; 垂直对齐:中间对齐; } #主导航ul{ 列表样式类型:块; 列表样式图像:无; 背景:红色; 保证金:0; 右边填充:0px; 左侧填充:0px; 线高:100%; -khtml边界:1px实心#BFDBD7; 盒影:0 1px 3px rgba(0,0,0,4); -webkit盒阴影:0 1px 3px rgba(0,0,0,4); -moz盒阴影:0 1px 3px rgba(0,0,0,4); 垂直对齐:中间对齐; } /**************************************主导航框******************************************************/ #主导航ul li.navItems{ 浮动:左; 显示:内联块; 宽度:94px; 高度:60px; 左边框:实心1px#d7d7; } #主导航ul li.导航项:悬停{ 背景#034693; } #主导航ul li.导航项:当前{ } #主导航ul li.navItems>a{ 宽度:94px; 高度:60px; 字体系列:Arial、Helvetica、无衬线字体; 字体大小:12px; 颜色:#4d; 显示:块; 线高:5.5em; 文字装饰:无; 文本对齐:居中; } #主导航ul li.navItems a:悬停{ 颜色:#FFF; } #主导航ul li.导航项:悬停a{ 颜色:#FFF;/*在滚动时使主导航文本保持白色*/ } #主导航ul li.导航项:悬停ul a{ 颜色:#4d;/*阻止子链接变为白色*/ } /*下拉列表*/ #主导航ul li.navItems ul{ 背景:#FAFAFA; 边框:1px实心#CCC; 列表样式:无; 位置:绝对位置; 显示:无; 宽度:250px; z指数:100; } #主导航ul li.navItems ul li { 填充:10px0; 字体大小:13px; 线高:1.5em!重要; 边框底部:1px实心#CCC; 空白:nowrap; 文本对齐:左对齐; } #主导航ul li.navItems ul li a{ 字体大小:13px; 线高:1.5em!重要; 文本对齐:左对齐; 文字装饰:无; 左侧填充:5px; } #主导航ul li.导航项:悬停ul li>a:悬停{ 背景#034693; 颜色:#FFF; } #主导航ul li.导航项:悬停ul li:悬停{ 背景#034693; 颜色:#FFF; } #主导航ul li.导航项:悬停ul li:悬停>a{ 背景#034693; 颜色:#FFF; } #主导航ul li.导航项:悬停ul.secondul{ 显示:块; 位置:绝对位置; } /**************************************子菜单框*********************************************************************************/ #主导航ul.secondulli.MarketingLI:悬停ul { 显示:块; 位置:绝对位置; } #主导航ul.secondul li.MarketingLI ul{ 宽度:200px; 填充:0; 字体大小:13px; 线高:1.5em!重要; 边框底部:1px实心#CCC; 空白:nowrap; 文本对齐:左对齐; 显示:无; 排名:0; 左边距:100%; }

HTML


似乎对我有用。你修好了吗?@GaryRyan你是在IE8上试用的吗?这是唯一一个不起作用的浏览器。是的,对不起,你说的对。我复制并粘贴了错误的网站…我的错。只是删除了评论,对菜单没有任何影响。我更新了我的答案。这不是一个完整的解决方案,但它是w为什么你看不到第二级的子菜单。谢谢@thirtydot,它可以工作,但删除css会带来另一个问题。我有一个透明的背景,适用于所有其他浏览器,这是IE的一个补丁,现在它没有背景了。有没有办法让它在IE中再次出现(一个坚实的背景就可以了)但是为所有其他浏览器显示透明度?请尝试
背景:#背景:rgba(?,?,?)
。IE不支持
rgba
,因此它将忽略第二个
背景
。支持
rgba
的浏览器(包括IE 9)将使用第二个
背景
。感谢您的努力。用一个透明的png解决了它。最后。我想
filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#00B1E8,endColorStr=#00B1E8);
-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#00B1E8,endColorstr=#00B1E8)";
Multilevel CSS Menu<br>
Demo <a href="www.mremind.com">Here</a><br>
<h2>Css For Menu</h2>
<p>
/**
* MAIN NAVIGATION
**/
#mainNav {`enter code here`

    height:60px;
    margin: 0 auto;

    padding-left: 15px;
    width:1000px;
    vertical-align: middle;

    }


#mainNav  ul{
    list-style-type:block;
    list-style-image:none;
    background:red;

    margin: 0;
    padding-right: 0px;

    padding-left: 0px;

    line-height: 100%;
    -khtml-border: 1px solid #BFDBD7;



    box-shadow: 0 1px 3px rgba(0, 0, 0, .4);

    -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, .4);
    -moz-box-shadow: 0 1px 3px rgba(0,0,0, .4);

    vertical-align: middle;
    }




/************************************** Main Navigation boxes ******************************************************/
#mainNav ul li.navItems{
    float:left;
    display:inline-block;
    width:94px;
    height:60px;
    border-left:solid 1px #D7D7D7;

    }
#mainNav ul li.navItems:hover{

    background:#034693;
    }
#mainNav ul li.navItems:current{

    }   
#mainNav ul li.navItems > a{
    width:94px;
    height:60px;
    font-family:Arial, Helvetica, sans-serif;
    font-size:12px;
    color:#4D4D4D;
    display:block;
    line-height:5.5em;
    text-decoration:none;
    text-align:center;
    }
#mainNav ul li.navItems a:hover{
    color:#FFF;
    }

#mainNav ul li.navItems:hover a{
    color:#FFF;  /*keeps main nav text white upon rollover*/
    }
#mainNav ul li.navItems:hover ul a{
    color:#4D4D4D;  /*stops sublinks from being white */
    }






/* Dropdown List */

#mainNav ul li.navItems ul{
    background:#FAFAFA;
    border:1px solid #CCC;
    list-style:none;
    position:absolute;
    display:none;
    width:250px;

    z-index:100;
    }

    #mainNav ul li.navItems ul li
    {

        padding: 10px 0;
        font-size: 13px;
        line-height: 1.5em !important;
        border-bottom: 1px solid #CCC;
        white-space: nowrap;
        text-align: left;

    }
    #mainNav ul li.navItems ul li a{

    font-size: 13px;
    line-height: 1.5em !important;
    text-align: left;
    text-decoration: none;
    padding-left:5px;

    }
#mainNav ul li.navItems:hover ul li > a:hover{
    background:#034693;
    color:#FFF;
    }


    #mainNav ul li.navItems:hover ul li:hover{
    background:#034693;
    color:#FFF;
    }

    #mainNav ul li.navItems:hover ul li:hover > a{
    background:#034693;
    color:#FFF;
    }

#mainNav  ul li.navItems:hover  ul.secondul{
    display:block;
    position:absolute;
    }






/************************************** Sub Menu boxes ******************************************************/  





    #mainNav  ul.secondul li.MarketingLI:hover ul
    {

    display:block;
    position:absolute;


    }




    #mainNav  ul.secondul li.MarketingLI ul{
    width:200px;

    padding:0;
    font-size:13px;
    line-height:1.5em !important;
    border-bottom:1px solid #CCC;
    white-space:nowrap;
    text-align:left;
    display:none;
    top:0;
    margin-left:100%;

    }
</p><br>
<br>
<h2>HTML</h2><br>
<p>
<div id="mainNav">
            <ul >

                <li class="navItems"><a href=""></a> </li>
                <li class="navItems" ><a class="first" href="#"></a>


                 <ul class="secondul">
                        <li class="MarketingLI"><a class="first" href=""></a>

                        <ul >
                            <li ><a href="">2nd Level 1</a>
                            </li>

                             <li ><a href="">2nd Level 1</a>
                            </li>

                            <li ><a href="">2nd Level 1</a>
                            </li>

                        </ul>

                        </li>
                        <li><a href=""></a>
                        </li>
                        <li><a href="#"></a></li>

                    </ul>
                </li>
                <li class="navItems"><a href=""></a>
                </li>

                <li class="navItems"><a href=""></a></li>
                <li class="navItems"><a href=""></a> </li>
                <li class="navItems"><a href=""></a> </li>
            </ul>
            <!--mainNav-->
        </div>
</p>