我试图在悬停时更改root的所有子元素的background-color属性。我尝试过以下方法:
.app_setting *:hover { background-color: yellow; }
*:hover { background-color: yellow; }
html *:hover {background-color: yellow; }
<html class="parent">
</html>
.parent *:hover {background-color: yellow; }
我也试过这些链接:
CSS for hover that includes all child elements
CSS :hover to affect all child divs
以上似乎只影响和更改<a>
标签的背景颜色。除了使用javascript或将每个元素分配给特定类之外,还有另外一种方法是使用CSS吗?
编辑:
小提琴被删除,因为这是一个家庭作业,我不想分享代码,但
小提琴DOES用
改变子元素background-color属性body *:hover {
background-color: yellow;
}
正如预期的那样。 但是当在HTML文档中打开时,背景颜色仅适用于<a>
标记。 我在Firefox和Chrome中尝试过相同的效果。
上述问题很简单,只需添加有效的doctype即可。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
答案 0 :(得分:2)
将鼠标悬停在页面上的每个元素上。
body *:hover{
border:1px solid red;
}
修改强>
正如评论中所指出的,看起来真正寻找的是如何在悬停时对子元素应用更改。虽然上面的代码在技术上是正确的(将对身体标签的所有孩子应用红色边框,我认为Smeegs在下面有一个更合适的答案:
来自Smeegs
.rootclass:hover *{
background-color: green;
}
.rootclass
是父类,您希望所有儿童在悬停时受到影响。
答案 1 :(得分:2)
我相信你所寻找的是像
.rootclass:hover *{
background-color: green;
}
如果您只想做直接后代,请确保使用>
而不是空格,如此。
.rootclass:hover > *
当您将鼠标悬停在父div的任何部分上时,该div的每个子元素的背景都会发生变化。
答案 2 :(得分:1)
如果要为每个子元素设置:hover
效果,可以使用以下语法:
.app_setting :hover {
background-color: yellow;
}
如果您希望任何级别的每个孩子都具有悬停效果。
或者您可以使用:
.app_setting > :hover {
background-color: yellow;
}
如果您只想让直接孩子产生效果。
答案 3 :(得分:1)
您可以使用:
.app_settings:hover *{ }
.app_settings:hover .childclass1{}
.app_settings:hover #child2id{}
请注意,如果您的元素已经具有背景颜色集,则可能必须使用!important