一尘不染

使用Font Awesome图标作为CSS内容

html

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

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

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


阅读 592

收藏
2020-05-10

共1个答案

一尘不染

FontAwesome 5的更新

您需要根据要渲染的图标类型将更font-family改为Font 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;
}

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


FontAwesome 4以下

那是使用它的错误方法。打开字体超酷的样式表,转到class您要使用的字体,说fa- phone,复制带有实体的该类下的content属性,然后像这样使用它:

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

只要确保您要定位到特定a标签,然后考虑使用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 */
}
2020-05-10