使用字体真棒图标作为CSS内容

sdv*_*ksv 260 html css font-awesome

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

a:before {
    content: "<i class='fa...'>...</i>";
}
Run Code Online (Sandbox Code Playgroud)

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

Mr.*_*ien 589

更新FontAwesome 5 感谢Aurelien

您需要更改font-familyFont Awesome 5 BrandsOR 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;
}
Run Code Online (Sandbox Code Playgroud)

演示

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


FontAwesome 4及以下

这是使用它的错误方法.打开字体真棒样式表,转到class你想要使用的字体说fa-phone,用该实体复制该类下的content属性,并使用它:

a:before {
    font-family: FontAwesome;
    content: "\f095";
}
Run Code Online (Sandbox Code Playgroud)

演示

只需确保如果您要定位特定a标记,请考虑使用a class来使其更具体,如:

a.class_name:before {
    font-family: FontAwesome;
    content: "\f095";
}
Run Code Online (Sandbox Code Playgroud)

使用上面的方法会将图标与你的剩余文本粘在一起,所以如果你想在它们两个之间留一点空间,那就制作它display: inline-block;并使用一些padding-right:

a:before {
    font-family: FontAwesome;
    content: "\f095";
    display: inline-block;
    padding-right: 3px;
    vertical-align: middle;
}
Run Code Online (Sandbox Code Playgroud)

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

a:hover:before {
    content: "\f099"; /* Code of the icon you want to change on hover */
}
Run Code Online (Sandbox Code Playgroud)

演示

现在在上面的例子中,图标因为大小不同而轻推,你肯定不希望这样,所以你可以width在基本声明上设置一个固定的

a:before {
    /* Other properties here, look in the above code snippets */
    width: 12px; /* add some desired width here to prevent nudge */
}
Run Code Online (Sandbox Code Playgroud)

演示

  • 请参阅此处[Font Awesome中的Unicode字符代码的官方列表](http://fortawesome.github.io/Font-Awesome/cheatsheet/). (63认同)

dus*_*ris 25

另一个解决方案,你无需手动搞乱Unicode字符,可以在制作字体真棒很棒 - 使用没有i-tags的图标(免责声明:我写了这篇文章).

简而言之,您可以创建一个这样的新类:

.icon::before {
    display: inline-block;
    margin-right: .5em;
    font: normal normal normal 14px/1 FontAwesome;
    font-size: inherit;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    transform: translate(0, 0);
}
Run Code Online (Sandbox Code Playgroud)

然后将其与任何图标一起使用,例如:

<a class="icon fa-car" href="#">This is a link</a>
Run Code Online (Sandbox Code Playgroud)


ers*_*ril 22

如果您可以从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;
}
Run Code Online (Sandbox Code Playgroud)


小智 9

a:before {
     content: "\f055";
     font-family: FontAwesome;
     left:0;
     position:absolute;
     top:0;
}
Run Code Online (Sandbox Code Playgroud)

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

从以下位置获取图标代码:https : //fontawesome.com/cheatsheet? from =io


小智 5

您应该将 font-weight 设置为 900,以便Font Awesome 5 Free font-family 工作。

这是工作的:

.css-selector::before {
   font-family: 'Font Awesome 5 Free';
   content: "\f101";
   font-weight: 900;
}
Run Code Online (Sandbox Code Playgroud)