2012-07-18 3 views
0

나는 다음과 같습니다 일부 HTML을 가지고 :부모가 특정 자녀를 포함하고있을 때 부모에게 스타일을 지정하는 방법은 무엇입니까?

나는 그것이 #child 포함 된 경우를 제외하고 #parent에 기본 배경 색상을 적용 할
<div id="parent"> 
    <div id="child"></div> 
</div> 

.

은 그래서 CSS는 다음과 같이 뭔가를 찾고 결국해야합니다

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

그러나, 나는 그런 식으로 작업 할 수있는 :contains 의사 선택을받을 수 없습니다. 이것을 달성 할 수있는 방법이 있습니까? 순수 CSS로 가능 JQuery와

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

그것의하지와

+0

http://www.w3.org/TR/selectors4/#subject – jasssonpet

+0

참조 : https://stackoverflow.com/questions/1014861/is-there-a-css-parent-selector –

답변

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

.

+0

with jQuery $ ('# parent : has (#child)') .css ...하지만 CSS 전용 솔루션을 사용하려고합니다. – Andrew

관련 문제