首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sass:通过变量迭代链接选择器

Sass:通过变量迭代链接选择器
EN

Stack Overflow用户
提问于 2012-04-15 22:47:57
回答 2查看 971关注 0票数 0

我正在使用Sass索引语法,尽管可以通过SCSS回答

这是循环的嵌套部分,在循环中,我希望在每次迭代中使用变量来命名选择器:

代码语言:javascript
复制
$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

但我得到了:

代码语言:javascript
复制
"Syntax error: Invalid CSS after \"&:\": expected pseudoclass or pseudoelement, was \"$sel\"\A

(是的,我看出来是语法错误)

我在找这样的输出:

代码语言:javascript
复制
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;
}

Sass能做这样的事吗?如果是的话,怎么做?

EN

回答 2

Stack Overflow用户

发布于 2012-04-15 23:16:43

有一种更好(更明显)的方法来实现我想要实现的目标(以$i从1到1为例):

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

输出

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2012-09-08 17:01:44

尝试使用#{$sel}

代码语言:javascript
复制
$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

这意味着:

代码语言:javascript
复制
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的范围内。我昨天才学会的,所以我很可能是错的。;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10166850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档