2014-12-01 101 views
0

我一直想知道這是否可以用sass來完成。scss @each相鄰兄弟

使用@each或@for,重複相鄰的選擇器來計算我選擇的數量。

所以輸出

.class{ 
    opacity: 1; 

    & + .class{ 
     opacity: 0.8; 

     & + .class{ 
      opacity: 0.6; 

      & + .class{ 
       opacity: 0.4; 
      } 
     } 
    } 
} 

可以這樣做?

回答

2

什麼你問的是一個相當簡單的循環來生成所需的選擇:

$opacity: 1, .8, .6, .4; 
$sel: ''; 
@each $o in $opacity { 
    $sel: if($sel == '', '.class', $sel + ' + .class'); 
    #{$sel} { 
     opacity: $o; 
    } 
} 

或者:

$siblings: 4; 
$step: .2; 
$class: '.class'; 
$sel: ''; 
@for $i from 0 to $siblings { 
    $sel: if($sel == '', '.class', $sel + ' + .class'); 
    #{$sel} { 
     opacity: 1 - (1 * ($step * $i)); 
    } 
} 
+0

神奇。我認爲你的選擇是我正在尋找的。能夠定義一切,以便更容易理解其他。 – 2014-12-02 14:36:40

+0

千謝謝你:) – 2014-12-02 14:48:23