在悬停时更改整个<li>颜色,而不仅仅是href </li>

时间:2013-11-11 21:15:05

标签: javascript jquery html css

我需要在悬停时更改li的整个背景颜色。我查看了Google和Stackoverflow上的其他示例,但我认为我的代码中可能存在一些冲突。

jsFiddle

HTML:

<div id="nav_bar">
       <div id="nav_bar_inside">
            <div class="nav_bar_content">
                <ul>
                    <li><a>Home</a></li>
                    <li><a>Music</a></li>
                    <li><a>Pictures</a></li>
                    <li><a>Links</a></li>
                    <li><a>Biography</a></li>
                </ul>
            </div>
        </div>
    </div>

CSS:

    .nav_bar {
        -webkit-animation:leftBar 1s; /* Safari and Chrome */
        -webkit-animation-fill-mode: forwards;
        float: left;
        background: #666;
        position:fixed;
        z-index: 15;
        box-shadow: 0px 0px 10px 1px rgba(119, 119, 119, 0.75);
        -moz-box-shadow: 0px 0px 10px 1px rgba(119, 119, 119, 0.75);
        -webkit-box-shadow: 0px 0px 10px 1px rgba(119, 119, 119, 0.75);
}    
#nav_bar #nav_bar_inside li {
    list-style-type: none;
    border-bottom: 1px solid #000;
    height: 50px;
    font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
    font-size: 22px;
    text-transform: uppercase;
    text-align: center;
    vertical-align: middle;
    padding-top: 30px;
}
#nav_bar #nav_bar)inside a {display: inline-block;}
#nav_bar #nav_bar_inside li a:hover {
    background-color: rgba(255, 0, 0, 0.4);
    display: block;
    cursor: pointer;
}

3 个答案:

答案 0 :(得分:4)

这一行:

#nav_bar #nav_bar_inside li a:hover

应该是:

#nav_bar #nav_bar_inside li:hover

答案 1 :(得分:3)

这种方法的另一个好处是可以使整个LI可点击:

li {padding: 0;}
li a {display: block;}

感谢佳能的小提琴。这里整理了一下:

http://jsfiddle.net/antisanity/35gNz/4

答案 2 :(得分:0)

:将鼠标悬停在整个li上 - 这是你的mod:

http://jsfiddle.net/hmfuL/

#nav_bar #nav_bar_inside li:hover {
background-color: rgba(255, 0, 0, 0.4);
display: block;
cursor: pointer;
}