0

我需要一些悬停效果的背景ul li

图片:

HTML

<div id="topnav">
        <ul class="nav clearfix">
            <li id="menu-item-25" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-2 current_page_item menu-item-25">
            <a href="http://localhost/">Home</a>
            </li>
            <li id="menu-item-45" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-45">
                <a href="http://localhost/">Menu2</a>
            </li>
            <li id="menu-item-98" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-98">
                <a href="http://localhost/">Menu3</a>
            </li>
            <li id="menu-item-96" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-96">
                <a href="http://localhost/">Menu4</a>
            </li>
            <li id="menu-item-97" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-97">
                <a href="http://localhost/">Menu5</a>
            </li>
        </ul>
    <div>

CSS

 #topnav {
        font-size: 8pt;
        font-weight: bold;
        margin-top: 2%;
        border: 1px solid #DDDDDD;
        float: left;
        font-size: 8pt;
        margin-bottom: 0;
        margin-left: 0;
        margin-right: 0;
        margin-top: 7% !important;
        opacity: 0.8;
        padding: 0;
        width: 60%;
    }
    #topnav ul {

        line-height: 1;
        list-style: none outside none;
        margin: 0;
        padding: 0;
         display: block;
    }
    #topnav ul li {
        float: left;
        width: auto;
        margin:10px;
    }
    #topnav ul {
        line-height: 1;
        list-style: none outside none;
    }
4

3 回答 3

1

据我所知,使用 css3 你不能选择元素的父元素(我可能错了)。使用 JQuery 相当容易$("#topnav a:hover").parent(),这将选择包含 a:hover 的 li。

希望我理解这个问题,这对你有帮助。

将 li 着色为白色的 JQuery 示例,您必须调整 li 的大小,以便可以看到此效果:

$(function(){
$("#topnav a").mouseenter(function(){
        $("#topnav a:hover").parent().css("background-color","#FFFFFF");
    }).mouseleave(function(){
        $("#topnav a:hover").parent().css("background-color","#CBBBA1");
    });
});

演示

于 2013-04-16T06:32:12.360 回答
1

像这样的东西:jsfiddle.net/kaGvs/5?:)

您可以给“a”标签一个负边距和边框,它们应该相互抵消。

#topnav ul li a {
    border-top: 15px solid transparent;
    border-bottom : 15px solid transparent;
    margin: -25px 0;
    display:block;
    line-height: 30px;
}

#topnav ul a:hover, #topnav ul ul a:hover {
    color: #0A0A0A;
    background-color: #CBBBA1;
    border-color: white;
}
于 2013-04-16T08:12:19.697 回答
0

试试这个

#topnav ul li:hover{
    background:white; 
}
#topnav ul li:hover a{
    background:#d8b038; 
}

演示

注意: 根据您的 UI 更改位置。我刚刚给出了悬停效果。

于 2013-04-16T06:38:00.510 回答