2016-10-25 61 views
0

我想創建一個每個循環創建一個類名稱並調用該名稱作爲參數的混合。這個想法是,我可以做一個列表:Sass變量內部混合包括

$list: (item1, item2, item3, ect); 

然後運行的每一個循環來創建一個使用該名稱的類並調用一個mixin與該名作爲參數。

@each $name in $list { 
    .#{$name} { 
     @include mixin($name); 
    } 
} 

mixin中的那個參數調用另一個同名變量來設置我在mixin中需要的屬性。這似乎是我應該能夠做的事情,但似乎無法弄清楚如何將mixin參數作爲變量而不是僅僅是一串文本。我是否必須以特定方式使用插值才能在列表名稱的前面添加$?這樣做似乎沒有工作:

@include mixin($#{$name}); 

我需要做的就是使用的物品1,項目2,項目3,ECT,創建該類的名字,但當時的值並將其作爲變量$物品1,$ ITEM2 ,$ item3通過mixin ,我不知道還有什麼可以嘗試的。

+0

爲什麼你需要變量吐出每一個?,這是什麼地圖與屬性/值是, – Thielicious

+0

我正在嘗試使用grunt spritesmith但如果我有它創建一個scss文件對我來說它不會打印出來精靈中每個圖標的CSS樣式就像它創建一個css文件一樣。所以我試圖做一個每個循環,我可以打印出類名並調用那個將同名變量作爲參數的sprite mixin。 – user2339729

回答

2

只使用變量名稱$name就像你第一次做的那樣。

Here is an example I made using your code

+0

該示例通過mixin發送值。我需要的是通過mixin發送一個變量。我需要發送變量$ red,$ green和$ yellow。不是「紅色」,「綠色」和「黃色」的值。 – user2339729

+0

不錯的顏色選擇 – Thielicious

+0

@ user23339729如果你想顯示變量名稱,那麼$ colors:(紅色:'$ red',綠色:'$ green',黃色''yellow');否則我不瞭解你的邏輯 – Thielicious