2015-09-15 54 views
0

很快(希望)。使用SASS/SCSS在嵌套結構內改變一個.js類

我有類似:

.front-cards-content { 
    .front-card-content { 
    &:nth-of-type(2n+1) { 
     .card-content-icon { 
     strong { 
      &:hover { 
      // Do something... 
      } 
     } 
     } 
    } 
    } 
} 

正如你所看到的,// Do something沉重嵌套有關父母之內。

如果我想確保只有啓用JavaScript時纔會出現某種情況,我可以使用附加到我的<html>標記的.js類。

但是,無論是否存在.js開關,該層次結構中的所有其他部分都應該可用。

我知道我可以簡單地複製和粘貼整個東西,並將.js添加到嵌套類的開頭,但這似乎非常直觀。

有沒有辦法解決這個問題?以某種方式將.js添加到我正在使用的層次結構的根目錄中,而無需複製並粘貼全部內容(這可能會導致維護問題)?

回答

1

您可以使用SASS&amp; amp;父親選擇器。 它將查找頂級選擇器(.front-cards-content)的任何父級的.js類,例如,如果您有<html class="js">

.front-cards-content { 
    .front-card-content { 
    &:nth-of-type(2n+1) { 
     .card-content-icon { 
     strong { 
      &:hover { 
      // Do something... 
      .js & { 
       // Do something different if JS is a parent of top selector (e.g. in html or body tag 
      } 
      } 
     } 
     } 
    } 
    } 
} 

http://jsfiddle.net/mc2zejf7/1/

+1

當然! D'哦! - 這是漫長的一天。謝謝一堆! :-) –