如何在sass文件中包含Font Awesome图标?

ifu*_*ion 3 css fonts font-awesome

你如何使用你@include在sass文件中使用Font awesome图标.

例如 - 如果我想使用此图标:http: //fortawesome.github.io/Font-Awesome/icon/pencil/

我知道您可以在HTML中使用它,如下所示:

<i class="fa fa-pencil"></i>
Run Code Online (Sandbox Code Playgroud)

但是我希望能够做到以下或类似的事情:

.class-name {
    @include: fa-icon(fa-pencil);
}
Run Code Online (Sandbox Code Playgroud)

默认/正确的方法是什么?

Pet*_*son 7

不确定是否有人会发现这有用但我创建了一个扩展.fa类而不是编辑现有的mixin@mixin fa-icon()

自定义Mixin

@mixin icon($icon) {
    @include fa-icon;
    @extend .fa;
    @extend .fa-#{$icon}:before;
}
Run Code Online (Sandbox Code Playgroud)

用法

.foo:before {
    @include icon(pencil);
}
Run Code Online (Sandbox Code Playgroud)

'pencil'是这里引用的图标的名称(减去fa-):https://fortawesome.github.io/Font-Awesome/icons/

Font Awesome 5的更新:

@mixin icon($icon) {
  @include fa-icon;
  @extend .fas;
  @extend .fa-#{$icon};
}
Run Code Online (Sandbox Code Playgroud)


ifu*_*ion 0

我最终解决了。有几种方法可以做到这一点,两者都非常相似:

选项一

通过向其中添加参数来编辑现有的@mixin fa-icon(),例如,它看起来像这样:

@mixin fa-icon($icon) {
  display: inline-block;
  font: normal normal normal #{$fa-font-size-base}/1 FontAwesome; // shortening font declaration
  font-size: inherit; // can't have font-size inherit on line above, so need to override
  text-rendering: auto; // optimizelegibility throws things off #1094
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transform: translate(0, 0); // ensures no half-pixel rendering in firefox
  @extend .fa;
  @extend .fa-#{$icon};

}
Run Code Online (Sandbox Code Playgroud)

用法:

.class-name {
    @include fa-icon(facebook);
    font-size: 50px;    
}
Run Code Online (Sandbox Code Playgroud)

选项2:

使用这个自定义 mixin:http://genesy.me/font-awesome-mixin/