11

我有一个菜单:

<ul class="menu">
   <li><div class="home"></div> Home</li>
   <li><div class="forum"></div> Forum</li>
   <li><div class="music"></div> Music</li>
</ul>

这个CSS:

.menu{
   list-style:none;
   width:100px;
   border:1px solid #ccc;
   padding:0px;
   margin:0px;
}

.menu li{
   height:20px;
   margin-top:5px;
   padding-left:10px;
}

.menu li div{
    display:inline-block;
    width:10px;
    height:10px;
}

.menu li:hover{
   background-color:green;
}

.home{background-color:black;}
.forum{background-color:red;}
.music{background-color:yellow;}

这一切都很好而且工作,但我想做的是当用户悬停在列表项上时,div应该改变它的背景,每个div应该改变为不同的颜色,所以我需要类似的东西:

.home li:hover{
   background-color:brown;
}

但现在我只是想在那个不存在的 div 中选择另一个 li,无论如何我希望你明白,这里也是 js fiddle:http: //jsfiddle.net/xShBB/

4

1 回答 1

25

你几乎拥有它!

li:hover .home {
   background-color:brown;
}

CSS 总是应用于选择器最右端的元素(除非我们在将来的某个时候看到对父选择器的支持)。因此,您选择的 div 必须位于选择器的右侧,而li:hover其父级必须位于其左侧。

您的小提琴已编辑

于 2012-09-26T08:00:52.820 回答