<div class="one">
</div>
<div class="two">
</div>
比方说,我想改变的.two
背景颜色,当我:hover
过.one
,是有可能做这种选择?
<div class="one">
</div>
<div class="two">
</div>
比方说,我想改变的.two
背景颜色,当我:hover
过.one
,是有可能做这种选择?
如果他们是彼此相邻(如你已经证明他们),那么你可以使用邻近的(+
)选择器:
.one:hover+.two { ... }
如果他们稍微远一点,但仍然是兄弟姐妹 - 即在同一个l埃维尔在DOM树 - 然后你可以使用兄弟(~
)选择:
.one:hover~.two { ... }
如果他们进一步远离,那么你可能很难 - CSS不会使它容易的时刻。
.one:hover + .two{
background-color: red;
}
这只有当.two
是.one
后出现在源
比方说,我想改变。二的背景颜色,当我:悬停。一,是有可能做到这一点那种选择?
是,一个选择是使用
.one:hover + .two {
background: olive; /* + will select an immediate sibling */
}
这只会工作,如果。二是相邻的。一,所以,如果他们不是彼此相邻?
你只使用general sibling combinator,~
.one:hover ~ .two {
background: olive;
}
如果他们不相邻呢?有没有办法做到这一点与CSS? – 2013-05-03 20:06:18
如果他们相邻,是的;如果他们是兄弟姐妹,是的(见我的答案)。如果它们可能比这更远,但可能不是。但是,如果您向我们展示您想要选择的实际案例而不是假设案例,那么我们可能会给出更准确的答案。 – Spudley 2013-05-03 20:08:27