2012-04-15 47 views
0

[我使用的是薩斯縮進語法雖然隨時通過SCSS回答]薩斯:通過變量

這是一個循環,這是我想的嵌套部分迭代鏈接選擇每個迭代名選擇使用變量:

$class: 2  
@for $i from 1 through 2 
    @if $i == 1 
    $sel: link 
    @if $i == 2 
    $sel: visited 
    div #s-#{$class} ul 
    &:nth-child(1) li 
     &:nth-child(2) a 
     &:$sel 
      color: $cc 

但我發現了:

"Syntax error: Invalid CSS after \"&:\": expected pseudoclass or pseudoelement, was \"$sel\"\A 

(是的,我可以看到它是一個語法錯誤)

我正在尋找像這樣的輸出:

div #s-2 ul:nth-child(1) li:nth-child(2) a:link { 
    color: #cc0000; 
} 

div #s-2 ul:nth-child(1) li:nth-child(2) a:visited { 
    color: #cc0000; 
} 

是無禮的話,如果能夠做這樣的事情?如果是這樣如何?

回答

0

有在做什麼,我想實現($我用從1到1爲例)更好的(更明顯)的方式:

$class: 2 
@for $i from 1 through 1 
    div #s-#{$class} ul 
    &:nth-child(1) li 
     &:nth-child(2) a 
     &:visited, &:link 
      color: $cc 

輸出

div #s-2 ul:nth-child(1) li:nth-child(2) a:visited, div #s-2 ul:nth-child(1) li:nth-child(2) a:link { 
    color: #cc0000; 
} 

雖然我「米,直到好奇方法使用選擇的變量

0

嘗試使用#{$sel}

$class: 2 
$cc: #cc0000 
@for $i from 1 through 2 
    $sel:() 
    @if $i == 1 
    $sel: link 
    @if $i == 2 
    $sel: visited 
    div #s-#{$class} ul 
    &:nth-child(1) li 
     &:nth-child(2) a 
     &:#{$sel} 
      color: $cc 

這給:

div #s-2 ul:nth-child(1) li:nth-child(2) a:link { 
    color: #cc0000; } 

div #s-2 ul:nth-child(1) li:nth-child(2) a:visited { 
    color: #cc0000; } 

注意,我不得不把IFS之前初始化$sel,可能是因爲否則停留在每個if的範圍。我昨天才學SASS,所以我可能不正確。 ;)