让悬停菜单在IE9中工作

时间:2014-12-12 06:58:36

标签: jquery html css internet-explorer

我需要一个悬停菜单才能在IE9中运行。它适用于IE 10和IE Edge。我不确定如何修复它。我想可能是这个.subnav_wrapper_ul:首先在JS中,我不知道如何去解决它。

我的HTML

<div id="main-menu" class="collapse navbar-collapse mainMenu">
    <ul class="nav navbar-nav home-nav">
        <li class="nav_active"><a href="javascript:void(0);">HOME</a></li>
        <li class="nav_item">
            <a href="javascript:void(0);">ABOUT US </a>
                <ul class="subnav_wrapper_ul">
                    <li class="subnav_item">
                        <a href="javascript:void(0);"></a>
                        <a class="" href="http://www.profishinsea.co.uk/client_area/nicole/noor-tech/our-vision.html">Our Vision</a>
                    </li>
                    <li class="subnav_item">
                        <a href="javascript:void(0);"></a>
                        <a class="" href="http://www.profishinsea.co.uk/client_area/nicole/noor-tech/our-vision.html">Our Team</a>
                    </li>
                </ul>
        </li>
        <li class="nav_active"><a href="javascript:void(0);">CONTACT US</a></li>    
    </ul>
</div>

我的CSS

.collapse.navbar-collapse {
    color: white;
    position: relative;
    z-index: 2;
}

.mainMenu {
    width: 80% !important;
}

.nav {
    font-family: "Titillium Web",sans-serif;
    padding-left: 5% !important;
}
.nav a {
    color: #ffffff;
    font-size: 16px !important;
}

.home-nav {
    border-bottom: 2px solid;
}

.nav_active a{
    color: #ff9e19 !important;
}

.subnav_wrapper_ul {
    background: none repeat scroll 0 0 #000000;
    display: none;
    margin-top: 1px;
    position: absolute;
    width: 121px;
}
.subnav_wrapper_ul li {
    list-style: outside none none;
    padding: 0 0 0 7px;
}
.subnav_wrapper_ul a {
    display: block;
    font-size: 14px !important;
    margin: 0 10px 0 0 !important;
    padding: 4px 15px;
    text-decoration: none;
}

我的JS

$('ul.navbar-nav li').hover(
    function () {
        $(this).find('.subnav_wrapper_ul:first').css('display','block');
    },
        function () {
            $(this).find('.subnav_wrapper_ul:first').css('display','none');  
    }
);

2 个答案:

答案 0 :(得分:0)

您可以使用css:

执行此操作
ul.navbar-nav li:hover > ul{ display:block; }

答案 1 :(得分:0)

  1. IE不支持非标签上的:hover伪元素,但是 我已经解决了这个问题。我尝试了很多解决方案 列出:添加适当的doctype以避免怪癖模式

  2. <a>通过将其显示为块项目来表现得像<div>, 然后按照你div的样式设置样式。

    将鼠标悬停在标准浏览器中的div上

    纠正IE错误的代码:

    a {display:block; width:148px; height:140px; background:red}
    a:hover {background:green;}
    
    <a href=”#”>&nbsp;</a>
    

    注意:

    即使您不打算创建链接,也可以使用  标记,通过赋予块样式来模仿块元素, 允许你使用:hover伪类而不用担心 IE6。如果你不希望光标在人们的情况下变成一只手 鼠标悬停在图像上(这在使用时会自动发生 标签),只需应用以下样式:

    a:hover {cursor:default}
    

    source