编写一个返回字符串的Sass/Scss函数

mar*_*dup 12 sass

我正在尝试使用Scss中的两个自定义实用程序函数来优化与CSS相关的计算.

EMs的一个:

@function _em($wanted, $inherited) {
  @return ($wanted / $inherited) + 'em';
}
Run Code Online (Sandbox Code Playgroud)

......和另一个百分比:

@function _pc($wanted, $parent) {
  @return (($wanted / $parent) * 100) + '%';
}
Run Code Online (Sandbox Code Playgroud)

...然后将它们称为内联:

body {
  margin: _pc(40,1024);
  font-size: _em(20,16);
  line-height: _em(26,20);
}
Run Code Online (Sandbox Code Playgroud)

但是,这些都没有返回预期NemN%字符串.(我认为这是我的字符串连接 - 即在计算结束时粘合单位声明 - 但我不确定.)

谁能说清楚我做错了什么呢?

Aym*_*adi 17

实际上,你的问题是mixin的名字.我自己就是发现了这个,但显然你不能用下划线开始混音.

这有效:http://jsfiddle.net/B94p3/

@function -em($wanted, $inherited) {
  @return ($wanted / $inherited) + 'em';
}

@function -pc($wanted, $parent) {
  @return (($wanted / $parent) * 100) + '%';
}

p {
    font-size: -em(40,16);
}
Run Code Online (Sandbox Code Playgroud)

  • 对于任何想要这些但没有字符串输出的人来说,只需用SASS插值语法包装返回,例如:`@function -px-to-pc($ wanted,$ parent){@return#{(($ wanted/$ parent)*100)+'%'}; }` (6认同)