2012-04-15 74 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,所以我可能不正确。 ;)