Css 悬停更改子背景

标签 css

我有一个菜单:

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

最佳答案

你几乎成功了!

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

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

Your fiddle edited .

关于Css 悬停更改子背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12597106/

相关文章:

html - li 悬停效果,里面有 img 和纯文本

css - borderRadius 样式属性不会使 reactjs 中的边缘变圆

php - 事件菜单类

css - text-bottom 是什么意思?

javascript - 单击任何 <li> 元素时显示

html - 如何修复使用 CSS 渲染时图像模糊的问题?

javascript - 使用javascript在html中获取子节点和子节点

javascript - jQuery 表单验证插件。仅为空字段制作背景颜色

javascript - 未捕获的类型错误 : String is not a function

css - 是否可以在 CSS 中设置 JavaFX 静态属性?