2011-09-08 3 views
86

방금 ​​Sass를 발견했으며, 그것에 대해 너무나 흥분했습니다.Sass and combined child selector

덧붙여서, 내 웹 사이트에서는, 겸용 자식 셀렉터 (E > F)을 사용해 스타일링 된 트리 형 네비게이션 메뉴를 구현하고 있습니다.

이 코드를 Sass에서 더 간단하거나 더 나은 구문으로 다시 작성할 수 있습니까? 이것에 당신이 >과 같은 구문을 재현하려면

foo { 
    bar { 
    baz { 
     color: red; 
    } 
    } 
} 

, 당신은 할 수 : 당신은 아마 이와 비슷한 일을 할 것입니다 결합 된 아이 선택기없이

#foo > ul > li > ul > li > a { 
    color: red; 
} 

답변

164

foo { 
    > bar { 
    > baz { 
     color: red; 
    } 
    } 
} 

다음에 컴파일됩니다.

foo > bar > baz { 
    color: red; 
} 

또는 말대꾸 10 : 당신이 그 하나의 규칙에 대한

foo 
    > bar 
    > baz 
     color: red 
+1

이 단지 이상을 만들려고, 안 ? – BoltClock

+1

이것이 OP가 원하는 것이지만 – arnaud576875

+1

감사합니다. btw, BoltClock 명시된 바와 같이, (그리고 어쨌든 더 못생긴 날)입니다. 내가 나의 낡았 던 스타일과 함께 머무를 것 인 것처럼 보인 단다. – frarees

14

는 그것을 할 수있는 짧은 방법이 없습니다. 자식 조합자는 CSS와 Sass/SCSS에서 동일하며 대안이 없습니다. 이 같은 여러 규칙이 있다면

그러나 :

#foo > ul > li > ul > li > a:nth-child(3n+1) { 
    color: red; 
} 

#foo > ul > li > ul > li > a:nth-child(3n+2) { 
    color: green; 
} 

#foo > ul > li > ul > li > a:nth-child(3n+3) { 
    color: blue; 
} 

을 당신은 다음 중 하나에 응축 수 :

/* Sass */ 
#foo > ul > li > ul > li 
    > a:nth-child(3n+1) 
     color: red 
    > a:nth-child(3n+2) 
     color: green 
    > a:nth-child(3n+3) 
     color: blue 

/* SCSS */ 
#foo > ul > li > ul > li { 
    > a:nth-child(3n+1) { color: red; } 
    > a:nth-child(3n+2) { color: green; } 
    > a:nth-child(3n+3) { color: blue; } 
} 
+0

결합 된 하위 선택기에 변형이 없으므로 어쩌면 다른 대안이 있을까요? – frarees