2012-07-18 74 views
0

我有一些HTML,看起來像這樣:父母包含特定孩子時如何設計父母樣式?

<div id="parent"> 
    <div id="child"></div> 
</div> 

我想一個默認的背景顏色應用到#parent除了當它包含#child

所以CSS應該結束了看起來像這樣:

#parent { 
    background: red 
} 
#parent:contains(#child) { 
    background: none 
} 

但是,我不能得到:contains僞選擇器工作方式。有沒有辦法做到這一點?

+0

http://www.w3.org/TR/selectors4/#subject – jasssonpet 2012-07-18 18:06:55

+0

請參閱:https://stackoverflow.com/questions/1014861/is-there-a-css-parent-selector – 2017-04-17 06:02:34

回答

1

:contains() was only intended to match elements containing certain text,而不是包含某些其他元素的元素。這是因爲與文本匹配元素相關的複雜性導致幾乎沒有瀏覽器實現,導致:contains() being dropped from the spec

由於there is no parent selector in CSS,並:has()(這不看內容)只在jQuery存在,你將無法使用CSS yet實現這一目標。

對於記錄,jQuery implements :contains() as well,但它是按照舊規範進行的,因此它使用名稱:has()代替元素。

0

與jQuery

if($("#child").length>0) $("#parent").css("backgroundColor","#fff"); 

它不可能用純CSS。

+0

與jQuery你可以做$('#parent:has(#child)').css ...但我打算採用CSS解決方案。 – Andrew 2012-07-18 18:06:34