如果每个人都在内部

时间:2014-08-01 20:53:03

标签: list variables for-loop sass each

我正在尝试从以下列表中获取特定选择器,以使两个属性和所有其他选择器具有单个属性。

我尝试了以下代码,但看起来,每个选择器都会获得if函数内部类定义的属性。

$items: (one 20% 30%) (two 12% 24%) (three 34% 32%) (four 45% 50%);

@each $item in $items {
  @if #{nth($item, 1)} == one or three {
    .#{nth($item, 1)} {
      left: #{nth($item, 2)};
      bottom: #{nth($item, 3)};
    }
  } @else {
    .#{nth($item, 1)} {
      left: #{nth($item, 2)};
    }
  }
}

我想要达到的结果是:

.one {
  left: 20%;
  bottom: 30%;
}

.two {
  left: 12%;
}

.three {
  left: 34%;
  bottom: 32%;
}

.four {
  left: 45%;
}

1 个答案:

答案 0 :(得分:2)

问题在于你的逻辑。您的if语句有两个表达式:(nth($item, 1) == one) or (three)three部分始终评估为真。

$items: (one 20% 30%) (two 12% 24%) (three 34% 32%) (four 45% 50%);

@each $item in $items {
  @if nth($item, 1) == one or nth($item, 1) == three {
    .#{nth($item, 1)} {
      left: #{nth($item, 2)};
      bottom: #{nth($item, 3)};
    }
  } @else {
    .#{nth($item, 1)} {
      left: #{nth($item, 2)};
    }
  }
}