例子:
<div class="one">
</div>
<div class="two">
</div>
假设我想改变.two
我:hover
over的背景颜色.one
,是否可以进行这种选择?
例子:
<div class="one">
</div>
<div class="two">
</div>
假设我想改变.two
我:hover
over的背景颜色.one
,是否可以进行这种选择?
假设我想在 :hover .one 时更改 .two 的背景颜色,是否可以进行这种选择?
是的,一种选择是使用
.one:hover + .two {
background: olive; /* + will select an immediate sibling */
}
这只有在 .two 与 .one 相邻时才有效,那么如果它们彼此不相邻怎么办?
您只需使用一般的兄弟组合器,~
.one:hover ~ .two {
background: olive;
}
如果它们彼此相邻(如您所示),则可以使用相邻 ( +
) 选择器:
.one:hover+.two { ... }
如果它们距离更远,但仍然是兄弟姐妹 - 即在 DOM 树中的同一级别 - 那么您可以使用兄弟姐妹 ( ~
) 选择器:
.one:hover~.two { ... }
如果它们比这更远,那么您可能会遇到困难——CSS 目前并不容易。
.one:hover + .two{
background-color: red;
}
这仅在您的源代码.two
中出现时才有效.one