我「需要」將其他的兩個元素(實際上是兄弟姐妹的孩子)中的每一個的兄弟對象放在:hover上。我可以讓下面的代碼塊工作,但我無法讓它在相反的工作。我知道沒有像這樣定位的指定方法:「.element2:hover + .element1」,但是我確實發現了這個(Is there a "previous sibling" CSS selector?),它有一些創造性的解決方案,包括RTL和一些棘手的:第十二子想法。然而,我仍然無法看到兩種方式,但只是切換方向(我需要兩種方式)。CSS對象元素2 on:懸停和元素1 on:懸停
MARKUP:
<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),以反映真實世界的情況下,我與...合作。
更新:也許我的「以前的兄弟姐妹」的語言含糊不清,因此被誤解爲「父母」(Is there a CSS parent selector?)。父母定位可能也會提供令人滿意的解決方案,但我在技術上需要針對「在同一父母的另一個兄弟姐妹之前出現的父母的一個兄弟姐妹」。它比聽起來更簡單。 :) 希望這能說明問題。
Thanks Trix!我更新澄清說,雖然這種情況可以提供解決方案,但這不是同一個問題。 – macwise
該線程討論了其中一種情況。我正在尋找「蛋糕和吃它」的場景,或者兩全其美。正如我在文章中所解釋的那樣,該線程只想顛倒順序,所以'.element2'觸發'.element1'。我需要和'.element1'來觸發'.element2',並且我需要它爲每個元素觸發不同的樣式。希望這是有道理的。 – macwise