使用僞類作爲行動修改其他元素只能在其他元素是具有僞類的元素(如:hover
或:focus
)的直接或間接兄弟或子元素時才能完成。原因是因爲CSS child/sibling selectors是相當嚴格的。
可以使用>
選擇器選擇直接孩子,+
選擇器選擇相鄰的兄弟姐妹,以及~
選擇器選擇一般的後續兄弟。例如,如果您有以下HTML:
<div>
<div class="c">Hover Me!</div>
<div>
This is a direct adjacent sibling to the element with class "c".
</div>
</div>
<div class="d">
This is an arbitrary element. It is neither a child nor sibling of
an element with class "c". It cannot be selected as a result of a
pseudo-class action on the textfield using CSS, but can be selected
using client-side scripting such as JavaScript or jQuery.
</div>
您可以在相鄰的兄弟風格div class="c"
與CSS,但樣式的任意段落的div class="c"
結果沒有可能的方式正在徘徊(因爲它是既不是孩子也不是兄弟姐妹,而是父母的兄弟姐妹)而不使用客戶端腳本(JavaScript,jQuery等)。
使用jQuery .hover()
函數,您可以實現您的最終目標。例如,下面的代碼將樣式任意段落,並可以改變選擇頁面上的任何元素(簡單元素的CSS選擇器作爲參數傳遞給$()
功能):
$(".c").hover(function() {
$(".d").css("background-color","green");
}, function() {
$(".d").css("background-color","transparent");
});
Here is an example這表明這兩個CSS和jQuery方法。
「*不起作用'.b:hover〜.d' *」 - 好吧,爲什麼呢?您的HTML中沒有'.b'元素。 – 2014-11-20 21:07:36
哦哈哈我更新了一些我的代碼之前我張貼,我有點錯過了。想象class =「b」= class =「c」 – 2014-11-20 21:13:08
@ user2538535你可以編輯問題來糾正錯字 – Huangism 2014-11-20 21:13:35