我“需要”在 :hover 上定位两个元素中的每一个的另一个兄弟姐妹(实际上是兄弟姐妹的孩子)。我可以让下面的代码块工作,但我不能让它反过来工作。我知道没有指定的定位方法是这样的:“.element2:hover + .element1”,但我确实发现了这个(是否有“前一个兄弟”CSS选择器?)它有一些创造性的解决方案,包括 RTL 和一些棘手的:第n个孩子的想法。但是,我仍然看不到双向的方法,而只是切换方向(我需要两者)。
标记:
<div class="element1">Element 1</div>
<div class="element2">
<p class="child">
<span class="grandchild">Element 2</span>
</p>
<p class="child2"></p>
</div>
<div class="element3">Element 3</div>
CSS:
.element1:hover + .element2 .child .grandchild { background-color: red; }
https://jsfiddle.net/macwise/6u3nj18m/
编辑:我添加了第三个根子元素 (.element3) 以反映我正在使用的真实案例。
更新:也许我的“前一个兄弟姐妹”的语言含糊不清,因此被误解为“父级”(是否有 CSS 父级选择器?)。父母定位也可能提供令人满意的解决方案,但我在技术上需要定位“在同一父母的另一个兄弟姐妹之前的父母的一个兄弟姐妹”。它比听起来简单。:) 希望这能说明问题。