SASS使用变量自定义类名

时间:2017-06-24 10:40:44

标签: css sass

有没有办法在SASS中自定义变量? 例如:

.m-b-{$number} {
    margin-bottom: $number;
}

如果我给一个元素赋予class =“m-b-50”,那么它应该是margin-bottom 50.我只是想知道SASS是否可行。

3 个答案:

答案 0 :(得分:2)

是的,可以在variable interpolation or variable substitution的帮助下使用#{}在SASS中进行变量替换。

插值 是评估包含一个或多个变量的表达式或字符串的过程,从而产生一个结果,其中变量被替换为相应的值

$number:60;
$n: 20px;

.m-b-#{$number}{
  margin-bottom: #{$number}px;
  margin-top: $n;
}

答案 1 :(得分:0)

对于面临此问题的其他人,这是可以实现此目标的方法:-

cov[1,0]

答案 2 :(得分:0)

答案是:不可能。 SASS只是一种为您预先生成CSS的语言。没有由HTML标记的内容触发的按需动态创建类。当浏览器呈现HTML并应用您指定的类时,它仍然只是使用CSS。即如果您将class="m-b-50"分配给元素,则必须已经在某处显式定义了类.m-b-50。如其他答案中所述,SASS可以使生成一堆预定义的类变得更加容易,但是您必须预先知道要支持哪些值。

现在,您可以为一些非常大的,包罗万象的范围生成类,例如-10001000,以有效地支持您可能尝试使用的所有值,并且它似乎可以满足您的要求,但是您将迫使用户下载更大的CSS文件,其中很大一部分很可能是未使用的CSS,这很浪费,而且在付费和受限数据计划的世界中可能会被忽略。