正确地将SASS插值转换为LESS

时间:2014-07-03 17:14:37

标签: css sass less

无法将SASS的代码转换为LESS,它给了我“无法识别的输入” &:@ {pseudo} {

SASS代码:

@mixin mm_border( $border, $pseudo, $size, $pos1, $pos2 ) {
    &:#{$pseudo} {
        ...
    }
}

LESS代码:

.mm_border( @border, @pseudo, @size, @pos1, @pos2 ) {
    &:@{pseudo} {
    ...
    }
}

我在线上有错误&:@ {pseudo} {

据我所知,与SASS的不同之处在于,SASS上的#{$ var}在LESS上是@ {var},那么哪里可能有问题呢?

My Less编译器版本是1.6.2

1 个答案:

答案 0 :(得分:1)

问题似乎与:中的&:@{pseudo}有关,可能是因为它试图将@{pseudo}分配给变量,而不是。{/ p>

以下是克服它的黑客行为。不是唯一的解决方案(也可能不是最好的解决方案),但这是您可以使用的一种方式。

<强>代码:

.mm_border( @border, @pseudo, @size, @pos1, @pos2 ) {
  @temp: ~":"; 
  &@{temp}@{pseudo} {
        border: @size @border #abc;
    }
}
.mm{
  .mm_border(solid,after,1px,1,2);
}

已编译的输出(在LESS 1.6.0中,但这应该不是问题)

.mm:after {
  border: 1px solid #aabbcc;
}