【问题标题】:Css on hover change child background悬停更改子背景上的CSS
【发布时间】:2015-08-22 19:16:41
【问题描述】:

我有一个菜单:

<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/

【问题讨论】:

标签: css


【解决方案1】:

你几乎拥有它!

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

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

Your fiddle edited.

【讨论】:

  • 哇,我为自己没有弄清楚这一点而感到愚蠢,无论如何,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-08
  • 2019-09-14
  • 2013-11-07
  • 2023-03-14
  • 2011-10-24
  • 2015-11-24
  • 2013-07-10
相关资源
最近更新 更多