提问者:小点点

使用字体Awesome图标作为CSS内容


我想使用一个字体很棒的图标作为CSS内容,

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

我知道我不能在content中使用HTML代码,那么只剩下图像了吗?


共1个答案

匿名用户

FontAwesome 5的更新感谢Aurelien

您需要根据尝试呈现的图标类型将font-family更改为font Awesome 5 brandsfont 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;
}

演示

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

FontAwesome 4及以下版本

那是错误的使用方法。打开font awesome样式表,转到要使用的字体的(例如fa-phone),将该类下的content属性与实体一起复制,然后使用如下:

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

演示

只要确保如果您想要针对特定的a标记,那么可以考虑使用class来使其更加具体,例如:

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

使用上面的方法会将图标与您的剩余文本粘在一起,因此如果您想在这两个文本之间留一点空间,请使其display:inline-block;并使用一些padding-right:

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

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

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

演示

在上面的示例中,图标会因为大小不同而发生移动,而您肯定不希望发生这种情况,因此您可以在基声明上设置一个固定的width,如下所示

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

演示