1

我正在尝试创建一个名为getFont以简化@font-face调用的 mixin。使用指南针和 sass 我这样做:

@mixin getFont($name, $url){
  @font-face {
    font-family: $name;
    src: url($url+".eot");
    src: url($url+".eot?#iefix") format("embedded-opentype"), 
      url($url+".woff") format("woff"), 
      url($url+".ttf") format("truetype"), 
      url($url+".svg#") format("svg");
    font-weight: normal;
    font-style: normal;
  }
}

这给了我使用指南针所需的结果,但是在使用 grunt 和 node-sass 时,我得到了这个:

@font-face {
  font-family: 'font-name';
  src: url($url+".eot");
  src: url($url+".eot?#iefix") format("embedded-opentype"), url($url+".woff") format("woff"), url($url+".ttf") format("truetype"), url($url+".svg#") format("svg");
  font-weight: normal;
  font-style: normal; }

看起来编译器在将两个字符串加在一起时遇到了一些麻烦?

4

1 回答 1

1

我没有使用 grunt oder node-sass,所以你必须进行测试。这适用于指南针,就像您的尝试一样。也许这也会导致其他系统中的预期结果。

@mixin getFont($name, $url){
  @font-face {
    font-family: $name;
    src: url(#{$url}.eot);
    src: url(#{$url}.eot?#iefix) format("embedded-opentype"),
    url(#{$url}.woff) format("woff"),
    url(#{$url}.ttf) format("truetype"),
    url(#{$url}.svg#) format("svg");
    font-weight: normal;
    font-style: normal;
  }
}

这是一个小提琴,字体损坏。您需要在 /draft 模式中运行它:http: //jsfiddle.net/NicoO/LKJK6/2/以查看 CSS 结果(规则被破坏)

于 2014-03-04T15:05:27.313 回答