Font Awesome无法显示图标

122

我正在使用Font Awesome,但不希望使用HTTP添加CSS。我已下载Font Awesome并将其包含在我的代码中,但是它显示为一个带边框的方框而不是一个图标。以下是我的代码:

<html>
<head>
<link rel="stylesheet" href="../css/font-awesome.css">
    <link rel="stylesheet" href="../css/font-awesome.min.css">
</head>
<body>
<div style="font-size: 44px;">
   <i class="fa fa-camera-retro fa-lg"></i> fa-lg
<i class="fa fa-camera-retro fa-2x"></i> fa-2x
</div>
</body>
</html>

我想知道如何让图标显示而不是边框方框。


5
这个问题之前已经被问了很多次。请确保你也包含字体文件,而不仅仅是CSS。https://dev59.com/LGYq5IYBdhLWcg3wkRm_ - Carol Skelly
这是 Font-Awesome 故障排除指南在 Git 上的链接:https://github.com/FortAwesome/Font-Awesome/wiki/Troubleshooting - Mehavel
请更新您的文件夹结构,其中包含font-awesome文件夹,这样我们就可以确定“font-awesome.min.css”是否正确获取了ttf路径。仅有CSS是无法工作的。 - Ajit Hogade
http://stackoverflow.com/a/42355738/397872 - Jacek Krysztofik
34个回答

4

以上都是正确的,但我的问题是我下载了免费版本的FA5,它没有:

font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0')

我无法使v5正常工作,因此在参考上述帖子的帮助下,我回退到了4.7.0版本并解决了我的问题。


1
我在使用FontAwesome的v5+版本时遇到了问题。我将它们的“webfonts”文件夹更改为css中的“fonts”,并以相同的方式放置,但它无法正常工作。我用v4.7.0替换了文件,现在它可以完美地工作了。唔。 - Lisa
1
在版本5中,图标的字体族不再是“FontAwesome”。在免费版本中,它现在是“Font Awesome 5 Free”,而在专业版中是“Font Awesome 5 Pro”。我在手动使用字符代码时遇到了这个问题,在一些地方它们停止工作,因为字体族没有设置。 - AuRise

4

首先,你不应该同时使用font-awesome.cssfont-awesome.min.css

通常,在开发过程中使用font-awesome.css,然后在网站完成后切换到font-awesome.min.css

此类问题通常是由于相对路径和位置引起的,请检查您的HTML文件与CSS文件的位置关系。

如果您的HTML文件位于基本目录中,而CSS文件在根目录的子文件夹中,则需要: href="./css/font-awesome.css"(只需一个点)


4

如果您正在使用SCSS和NPM软件包,这是我的解决方案:

npm i --save @fortawesome/fontawesome-free

然后在SCSS文件的顶部(最好是在应用程序根目录导入的SCSS文件):

@import '@fortawesome/fontawesome-free/css/fontawesome.css';
@import '@fortawesome/fontawesome-free/css/all.css';

2
有趣的是添加了 @fortawesome/fontawesome-free/css/all.css 就解决了。 - Andy Braham

3

<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/js/all.js" integrity="sha256-2JRzNxMJiS0aHOJjG+liqsEOuBb6++9cY4dSOyiijX4=" crossorigin="anonymous"></script>


运行非常良好。 - De Zin Htang

3

在我的情况下,我需要将sst和Bruno Leveque的答案结合起来:

  • https://fontawesome.com/download
  • 通过“免费下载”,下载并解压文件
  • 将所有文件夹复制到 /fontawesome/ 目录下
  • 链接 all.min.css 代替 fontawesome.css

Django示例:

# in myapplication/vendor/fontawesome/ everything unpacked
<link rel="stylesheet" href="{% static 'myapplication/vendor/fontawesome/css/all.min.css' %}">

2
我成功地使用 Font Awesome 的 CDN 和 JavaScript 包含方式(如 this page 上所述)安装了它。然后,我尝试将 HTML 和 CSS 复制到一些旧页面上,突然间我看到了空白的方框代替了图标。
我看到了丹尼尔的回答(上面),因为我的旧 CSS 文件非常大(而且年代久远),我怀疑这可能是问题所在。然而,当我查看 Chrome DevTools 时,它确实看起来像是 Font Awesome 已经加载:

Screenshot of CSS for Font Awesome Icon

我本以为如果有问题,字体会显示删除线……然而,我已经尝试了所有的选项,所以我检查了计算样式,并清楚地看到 Font Awesome 字体绝对未被使用。(请参见底部渲染的字体)

Font Awesome not being used

我的旧版CSS文件很混乱,我不想去碰它,所以我采用了这种方法——请不要告诉任何人 :)
<a class="nav-link fa fa-instagram" style="font-family:FontAwesome;" href="//www.instagram.com/xxxx/" target="_blank"></a>

还要注意的是,当我从 Font Awesome 版本 4.7.0 升级到版本 5.4.1 时,这个问题消失了!我使用了 这个设置指南 和这个 HTML。
<a class="nav-link" href="//www.instagram.com/xxxx/" target="_blank"><i class="fab fa-instagram"></i></a>

1

在我的情况下,只需要添加字体族名称即可,例如当我需要添加Instagram图标时,我需要将字体族名称设置为FontAwsome:

.fa-instagram:before {
content: "\f16d";
font-family: "FontAwesome" !important;

}


1
在我的情况下,问题是由于使用一些未包含在免费集合中的常规样式(far)导致的。更改为fas即可解决问题。

这对我解决了问题,谢谢。 - Jacob Broughton

1
我认为你的根目录中没有像保存 CSS 文件夹的字体文件夹。
演示

enter image description here

而css文件夹就像这样

enter image description here

而字体文件夹则如下:

enter image description here

我希望它对你有用。

谢谢你。


1
在我的情况下: 您需要将整个font-awesome文件夹复制到您的项目css文件夹中,而不仅仅是font-awesome.min.css文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接