在悬停时改变li的颜色

时间:2013-07-28 02:44:14

标签: css css3 menu hover

我想在悬停时更改li元素的颜色,

<ul id="sitemap">
        <li><a href="#">a</a>
            <ul>
                <li><a href="#">b</a></li>
                <li><a href="#">c</a></li>
                <li><a href="#">d</a></li>
                <li><a href="#">e</a></li>
                <li><a href="#">f</a></li>
            </ul>                   
        </li>
</ul>

这是css代码:

 #sitemap li:hover{
    background:#eee;
} 

当我悬停在a,b,c ... f的任何子li上时,它也会改变父母(a)的背景颜色。如何在悬停时只更改当前li元素的bg颜色,也可以在第3级li,那么可能是一般解决方案..

2 个答案:

答案 0 :(得分:3)

只需将ul添加到您的选择器,就可以了

#sitemap ul li a:hover {
  background:#eee;
}

之前没有工作的原因是因为它定位到顶级li,所以它下面的所有内容都是li的一部分。因此,当子菜单被悬停时,所有块都被突出显示

Fiddle

答案 1 :(得分:0)

添加&gt;进入你的CSS,以便它必须是一个直接的后代。

#sitemap ul > li > a:hover {
  background:#eee;
}

有关详细信息,请查看http://www.w3.org/TR/CSS2/selector.html#child-selectors