在父悬停时更改子颜色的更好解决方案

Posted

技术标签:

【中文标题】在父悬停时更改子颜色的更好解决方案【英文标题】:Better solution for changing children color on parent hover 【发布时间】:2011-10-31 15:12:30 【问题描述】:

是否有更好的单行跨浏览器解决方案来通过 css 更改子文本颜色? 需要在悬停 div 上将所有文本变为红色 html:

<div><span class="gray">I'm a lion!</span><span>Arrrrr!!!</span></div>

css:

div color:black;
.gray color:gray;
div:hover color:red;

我以为只有这个

div:hover, div:hover .gray color:red;

【问题讨论】:

【参考方案1】:

你自己的...

div:hover, div:hover .gray color:red;

...确实是一个很好的解决方案。如果您也想匹配其他类/元素,可以使用星号;

div:hover, div:hover *  color:red; 

http://jsfiddle.net/h5BaU/ 上的演示

【讨论】:

这很简单。是的,我会说这是最简单的解决方案。不可能在同一个选择中同时匹配一个元素及其子元素(例如div:hover &amp;&amp; *),因此div:hover, div:hover * 既符合语义又简单。让男人接受! 完美解决方案

以上是关于在父悬停时更改子颜色的更好解决方案的主要内容,如果未能解决你的问题,请参考以下文章

jQuery CSS 悬停

当父 Div 悬停时更改子 Div 的背景颜色

在父悬停过渡后显示子

如何在悬停时更改按钮的颜色?

Java Swing:在鼠标悬停时更改背景颜色

Java Swing:在鼠标悬停时更改背景颜色