2016-10-31 3 views
0

설명 : 외부 응용 프로그램에서 생성 된 HTML이 있으며 불행히도 변경할 수 없습니다. 그것은 기본적으로 자식 요소의 많은 컨테이너 사업부를 포함, 느릅 나무의 일부는 다음과 같이 중첩 :중첩 된 경우에도 자식 요소를 차례로 선택하십시오.

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

예상 결과 : 나는 CSS3에게 애니메이션를 사용하려고 해요 애니메이션 지연을 사용하면 모든 목록 요소가 차례로 약간의 지연으로 빠르게 사라지는 멋진 효과를 낼 수 있습니다. CSS는 다음과 같이 진행됩니다

.container .child { 
 
    animation: FadeIn 1s ease-out; 
 
} 
 
.container .child:nth-child(1){ 
 
    animation-delay: 0.2s 
 
} 
 
.container .child:nth-child(2){ 
 
    animation-delay: 0.4s 
 
} 
 
.container .child:nth-child(3){ 
 
    animation-delay: 0.6s 
 
} 
 
.container .child:nth-child(....){ 
 
    animation-delay: 0.8s 
 
}

문제 : 모든 요소 .container의 DIV 내에서 직접하는 경우 이해다시피가, 애니메이션은 잘 작동합니다. 그러나 일부 div가 중첩되면 애니메이션이 순서대로 중단됩니다. 추가 DIV에 중첩 되더라도 어떻게 든 모든 .child 요소를 하나씩 선택할 수 있습니까?

편집 : 모든 혼란을 피하기 위해 - 나는 JS - 순수한 CSS 방식없이이 목표를 달성하려고 노력 중입니다!

미리 감사드립니다.

+0

다음과 같은 두 가지 이유로 JS가 필요합니다. (a) 구조가 동적이고 다른 일부는 다른 컨테이너 내에 중첩 된 반면, 다른 구조는 중첩되지 않습니다. CSS'nth-child' 또는'nth-of-type' 셀렉터는 형제에서만 작동합니다. (b) 얼마나 많은'.child' 엘리먼트가 존재하는지에 대해서는 명확하지 않지만 동적 인 것으로 가정하고 지연을 계산해야합니다. – Harry

답변

0

나는 당신이 찾고있는 것이 .children()이 아니라고 생각합니다. .child()입니다. 또한 다양한 JQuery 선택기를 사용하여 선택할 자식을 지정할 수 있습니다. JQuery documentation on the children methoddocumentation for JQuery Selectors을 참조하십시오.

+0

당신이 놓칠 수 있듯이 jQuery 나 JS가 전혀 포함되어 있지 않습니다 - 순수 CSS 셀렉터. 물론 jQ로 클래스를 선택하는 것은 쉽지만 문제는 CSS (nth-child (x))와 동일한 결과를 얻는 것입니다. – Artanis

+0

제 답변으로 jquery-animate 태그가 응답을 포기했습니다. [this] (http://stackoverflow.com/questions/4910077/select-all-child-elements-recursively-in-css)가 귀하가 찾고있는 답변 일 수 있습니다. – campellcl

+0

아, 미안하지만 분명히 실수로 태그를 추가했습니다. 당신이 준 링크에 관해서는 - 좋은 방법을 설명하고 있지만 정확히 내가 여기까지 온 것은 아닙니다. 보시다시피 - 모든 어린이를 순서대로 선택해야합니다 (따라서 : n 번째 자녀 (x)). 재귀 선택은 모두 선택합니다. – Artanis