2013-10-06 2 views
1

직접 선택 영역을 포함하는 경우에만 상위 div를 선택하기위한 CSS 선택기가 있습니까?div가 포함 된 경우에만 선택

예제 코드 : 나는 그렇게 얼마나

<div class="top_level"> 
    <input type="radio"></input> 
</div> 
<div class="top_level"> 
    <input type="text"></input> 
</div> 
<div class="top_level"> 
    <select name="namehere"> 
    <option>...</option> 
    <option>...</option> 
    <option>...</option> 
    </select> 
</div> 

가 직접 내부의 선택을 포함하고 있기 때문에 가정하자 난 단지, 제 3 top_level 클래스 사업부를 선택하려면?

답변을 검색하려고했지만 찾으려고하지 않았습니다. CSS에서 부모 선택이 가능하면 훨씬 쉽습니다. 당신이 jQuery를 사용하는 경우

+1

가능한 중복 같은 쿼리 수 [A CSS 부모의 선택이 있습니까?] (http://stackoverflow.com/questions/1014861/is-there-a-css-parent-selector) – grc

+0

질문이 비슷해 보일 수도 있지만 기술적으로 부모 선택기를 요청하지는 않습니다. 요소가 포함 된 내용을 기준으로 요소를 선택할 수 있는지 묻습니다. 기술적으로 그들은 내가 생각할 다른 질문들이다. – Ahmad

답변

4

, 당신은 :has 사용할 수 있습니다 만 CSS를 사용하는 경우

$('div.top_level:has(select)') 

, 그 대답은 간단하다 : 아니, 당신은을 선택 유사한 아무것도하지 않습니다 부모의.

+0

나는 JS를 여기에서 사용하는 것을 피하고 싶다. 지금 순수하게 CSS 해결책을 찾고있다. 아무것도 찾을 수 없으면 JS로 이동합니다. – Ahmad

+0

@Ahmad 편집했습니다. 미안하지만 순수한 CSS 솔루션이 있다고 생각하지 않습니다. –

+0

그래, 네 말이 맞을거야. CSS가없는 무언가를 얻을 수 있는지 알게 될 것입니다. 그렇지 않다면, 나는 이것을 사용하여 대답을 선택한 것으로 표시 할 것입니다. – Ahmad

3

빈 가상 클래스를 사용하여 컨테이너가 비어 있는지 (줄 바꿈 제외) 확인할 수 있습니다.

요소 유형이 포함되어 있는지 확인할 수 없습니다. 하지만 당신이 사용하는 마크 업을 재구성 할 수 있습니다 : 빈 선택

이 예는 :

이제
<div class="top_level"> 
    <input type="radio"></input> 
    <div class="list"></div> 
</div> 
<div class="top_level"> 
    <input type="text"></input> 
    <div class="list"></div> 
</div> 
<div class="top_level"> 
    <div class="list"> 
    <select name="namehere"> 
    <option>...</option> 
    <option>...</option> 
    <option>...</option> 
    </select> 
</div> 
</div> 

당신의

.list:not(:emtpy) { 
       // to select all lists that are non-empty 
} 
+1

조금 hackish. –

+0

맞춤법 오류가 너무 작음 : X 나중에 참조 할 수 있도록 수정해 주시겠습니까? – MackieeE

+0

어디 있는지 말해 줄 수 있습니까? –

관련 문제