2017-04-04 31 views
0

我處於這種情況,我想將相同的CSS規則分配給幾個選擇器,通常我使用Stylus interpolation將幾個類分配給一個變量。在幾個類中創建Stylus變量並在彙編中連接

pages = '.home, .about, .contact' 

{pages} 
    a 
     color black 

這樣產生的:

.home a, .about a, .contact a { 
    color: black; 
} 

但是我有,我想在一個優雅的方式來解決,如果有可能的問題。比方說,現在我想使用相同的變量,另外一個來連接,例如:

.general 
    &{pages} 
     a 
      background-color black 

這產生以預期的方式:

.general.home a, .general .about a, .general .contact a { 
    background-color: black; 
} 

我想產生一個「雙級」在每種情況下選擇器,不僅是第一個。爲此,我曾嘗試使用作品的迭代方法,但我不滿意的一切:

pages = home about contact 

.general 
    for class in pages 
     &.{class} 
      a 
       color black 

這產生於:

.general.home a { color: black; } 
.general.about a { color: black; } 
.general.contact a { color: black; } 

這是不是太糟糕,但是當我想以第一種方式使用相同的變量(這是我給這個變量的最常用的用法),但我不能,因爲它不是用正確的選擇器語法編譯的。

你能想出任何實現這個目標的方法嗎?

在此先感謝!

+0

我最終創建兩種類型的變量對每個組的類別和使用在每種情況下我需要的一個。 'pages ='.home,.about,.contact'' 'pagesArray = home about contact' 但我不喜歡這個解決方案,因爲它更難維護... –

回答

1

您可以選擇的字符串中添加&到每一個類:

pages = '&.home, &.about, &.contact' 

.general 
    {pages} 
    a 
     color black 

即使自動replace BIF:

pages = '.home, .about, .contact' 

.general 
    {replace('\.', '&.', pages)} 
    a 
     color black 
+0

謝謝,它非常乾淨。 –

+0

是否可以用逗號添加更多變量?有我問的例子... http://codepen.io/anon/pen/jBoLRZ在文字CSS中有我想達到的結果......感謝您的幫助! –