SASS 相当于 LESS Space ("+_") 语法

标签 sass

LESS 有一个很棒的小功能,叫做 Space这允许 mixins 将规则附加到现有属性。对于 transform() mixin 非常有用,因为您可以将许多转换规则附加到同一个属性,只需多次调用 mixin,例如。

例子:

.scale() {
  transform+_: scale(2);
}
.rotate() {
  transform+_: rotate(15deg);
}
.myclass {
  .scale();
  .rotate();
}

输出:
.myclass {
  transform: scale(2) rotate(15deg);
}

我正在尝试进入 SASS,但我不明白如何使用可用的语法来实现这一点。无论我做什么,输出都只应用其中一种转换,而不是两种转换。单独使用 SASS 实现这种行为的最佳方法是什么?

最佳答案

您可以在 mixin 中使用可变参数,如下所示:

@mixin transform($transforms...) {
  transform: $transforms;
}
.myclass {
  @include transform(scale(0.5) rotate(30deg));
}

这将输出:
.myclass {
  transform: scale(0.5) rotate(30deg);
}

你可以在这里看到一个工作示例:

http://codepen.io/sonnyprince/pen/RaMzgb

多一点信息:

Sometimes it makes sense for a mixin or function to take an unknown number of arguments. For example, a mixin for creating box shadows might take any number of shadows as arguments. For these situations, Sass supports “variable arguments,” which are arguments at the end of a mixin or function declaration that take all leftover arguments and package them up as a list. These arguments look just like normal arguments, but are followed by ....



http://sass-lang.com/documentation/file.SASS_REFERENCE.html#variable_arguments

关于SASS 相当于 LESS Space ("+_") 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36642674/

相关文章:

javascript - 在鼠标 Y 上更改 2 种背景颜色 + 使 <p> 适应该新颜色

css - 如何在 SASS 中设置不同的值?

ruby-on-rails - 使用 Rails 3.1 的 Assets 管道预编译 .scss list 文件

html - 将输入和按钮对齐在一条线上

css - grunt 自定义 css 到 main.css

css - Google Web Font 没有在 Angular 中使用?

sass - Sublime Text 返回 nul 控制字符

SASS 动态变量名和嵌套循环抛出错误

css - 交错无限CSS动画

css - 从 chrome 浏览器打印错误地应用媒体查询中的移动类