我想使用字体Awesome图标作为CSS内容,即,

a:before {
    content: "<i class='fa...'>...</i>";
}

我知道我不能在内容中使用HTML代码,所以它只剩下图像吗?


当前回答

更新为FontAwesome 5 感谢奥雷连

你需要根据你要渲染的图标类型,将字体家族更改为Font Awesome 5 Brands或Font Awesome 5 Free。另外,不要忘记声明font-weight: 900;

a:before {
   font-family: "Font Awesome 5 Free";
   content: "\f095";
   display: inline-block;
   padding-right: 3px;
   vertical-align: middle;
   font-weight: 900;
}

Demo

您可以阅读下面的其余答案,以了解它是如何工作的,并了解图标和文本之间的间距的一些变通方法。


FontAwesome 4及以下

这是错误的使用方法。打开字体awesome样式表,找到你想要使用的字体的类,比如fa-phone,复制该类下的内容属性和实体,并像这样使用它:

a:before {
    font-family: FontAwesome;
    content: "\f095";
}

Demo

只要确保如果你正在寻找一个特定的标签,然后考虑使用一个类来让它更具体,比如:

a.class_name:before {
    font-family: FontAwesome;
    content: "\f095";
}

使用上面的方法将图标与你的剩余文本粘在一起,所以如果你想在它们之间有一点空间,让它显示:inline-block;用一些填充物:

a:before {
    font-family: FontAwesome;
    content: "\f095";
    display: inline-block;
    padding-right: 3px;
    vertical-align: middle;
}

进一步扩展这个答案,因为许多人可能需要在悬停时更改图标,所以为此,我们可以为:悬停动作编写单独的选择器和规则:

a:hover:before {
    content: "\f099"; /* Code of the icon you want to change on hover */
}

Demo

在上面的例子中,图标会因为大小的不同而移动,你肯定不希望那样,所以你可以在基本声明中设置一个固定的宽度

a:before {
    /* Other properties here, look in the above code snippets */
    width: 12px; /* add some desired width here to prevent nudge */
}

Demo

其他回答

a:before {
     content: "\f055";
     font-family: FontAwesome;
     left:0;
     position:absolute;
     top:0;
}

示例链接: https://codepen.io/bungeedesign/pen/XqeLQg

获取图标代码: https://fontawesome.com/cheatsheet?from=io

你应该将Font -weight设置为900来使Font Awesome 5 Free Font -family正常工作。

这是工作中的一个:

.css-selector::before {
   font-family: 'Font Awesome 5 Free';
   content: "\f101";
   font-weight: 900;
}

更新为FontAwesome 5 感谢奥雷连

你需要根据你要渲染的图标类型,将字体家族更改为Font Awesome 5 Brands或Font Awesome 5 Free。另外,不要忘记声明font-weight: 900;

a:before {
   font-family: "Font Awesome 5 Free";
   content: "\f095";
   display: inline-block;
   padding-right: 3px;
   vertical-align: middle;
   font-weight: 900;
}

Demo

您可以阅读下面的其余答案,以了解它是如何工作的,并了解图标和文本之间的间距的一些变通方法。


FontAwesome 4及以下

这是错误的使用方法。打开字体awesome样式表,找到你想要使用的字体的类,比如fa-phone,复制该类下的内容属性和实体,并像这样使用它:

a:before {
    font-family: FontAwesome;
    content: "\f095";
}

Demo

只要确保如果你正在寻找一个特定的标签,然后考虑使用一个类来让它更具体,比如:

a.class_name:before {
    font-family: FontAwesome;
    content: "\f095";
}

使用上面的方法将图标与你的剩余文本粘在一起,所以如果你想在它们之间有一点空间,让它显示:inline-block;用一些填充物:

a:before {
    font-family: FontAwesome;
    content: "\f095";
    display: inline-block;
    padding-right: 3px;
    vertical-align: middle;
}

进一步扩展这个答案,因为许多人可能需要在悬停时更改图标,所以为此,我们可以为:悬停动作编写单独的选择器和规则:

a:hover:before {
    content: "\f099"; /* Code of the icon you want to change on hover */
}

Demo

在上面的例子中,图标会因为大小的不同而移动,你肯定不希望那样,所以你可以在基本声明中设置一个固定的宽度

a:before {
    /* Other properties here, look in the above code snippets */
    width: 12px; /* add some desired width here to prevent nudge */
}

Demo

更新字体Awesome 5使用SCSS

.icon {
  @extend %fa-icon;
  @extend .fas;

  &:before {
    content: fa-content($fa-var-user);
  }
}

如果你可以通过font-awesome访问SCSS文件,你可以使用这个简单的解决方案:

.a:after {
    // Import mixin from font-awesome/scss/mixins.scss
    @include fa-icon();

    // Use icon variable from font-awesome/scss/variables.scss
    content: $fa-var-exclamation-triangle;
}