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个回答

97

在我的情况下,我在我的 CSS 代码中犯了以下错误。

*{
    font-family: 'Open Sans', sans-serif !important;
}

这将覆盖整个页面的所有字体系列规则。我的解决方案是将代码移动到body中,像这样。

body{
    font-family: 'Open Sans', sans-serif;
}

NB: 使用CSS中的!important标志时,相同类型的任何其他CSS规则在同一元素上声明将被覆盖。


5
这对我来说是解决方案。我原本使用了 *{font-family: Raleway},现在改为 *.not(i) {font-family: Raleway} - fungusanthrax
我也遇到了这个问题,但是很长一段时间我都没有意识到,因为在 DevTools 中它看起来确实像是在使用 FontAwesome。请查看我的答案以获取更多详细信息。 - Dagmar

68

当您打开font-awesome.min.css时,您会看到以下路径:

'Fonts/fontawesome-webfont.ttf?v=4.2.0' ...

这意味着您需要创建一个名为Fonts的文件夹,然后将fontawesome-webfont.ttffontawesome-webfont.wofffontawesome-webfont.eot)文件复制到该文件夹中。之后一切都应该正常工作。


自至少0.8.1版本以来,font-awesome未被引用。字体文件夹中有三个summernote文件,分别为eotttfwoff扩展名,需要进行分发。 - ficuscr
2
请注意,在4.6.3版(如果不是更早版本)中,应该使用fonts而不是Fonts,在区分大小写的系统上可能会导致问题... - Jason
1
为什么 Font Awesome 网站上没有明确说明呢?这真的不够清晰明了。 - Matt
太棒了!我以为字体文件必须与CSS文件在同一个文件夹中,但实际上它们应该在上一级文件夹。 - Giovani Vercauteren
另外,请确保您的库是最新的。我除了Bandcamp徽标之外,所有的徽标都有了。一旦我下载了更新的4.7并替换了文件,它就可以工作了。 - Ryan Walker
@Jason是正确的。查看你的font-awesome.min.css文件,确定你的图标应该在哪个文件夹中。其次,在4.7版本中使用fas fa-car是不起作用的,应该使用fa fa-car。 - CredibleAshok

59

请注意font awesome的新版本(5)使用"fas""fab"前缀代替"fa"前缀。

引用自他们的网站:

在版本5中,fa前缀已被弃用。新的默认样式是fas实心样式和fab品牌样式。

这就是为什么我的字体显示为空白方块的原因。现在已经解决了。

示例代码:

<a class="nav-link" href="//www.facebook.com/xxx" target="_blank"><i class="fab fa-facebook-f"></i></a>

参见:https://fontawesome.com/icons/facebook-f?style=brands


这对我有用!奇怪的是它在文档中没有更新。 - GroomedGorilla
这是唯一有效的方法。如果您正在使用现代版本,请使用此方法。 - samurdhilbk
紧急救援!更改为“fa fa-bars”的操作出现问题。 - nasty
谢谢,对我来说,有些图标使用fas,而其他一些使用fab。例如,fab fa-twitter很好,但是fas fa-twitter显示一个白色的正方形,不知道为什么! - user1620090
那么如果新版本更快,为什么我需要将我的类从“fas”更改为“fa”呢? - Sam
显示剩余2条评论

31

首先,请检查您是否有class="fa"以及图标的类别。因此,不仅仅是

<i class="fa-pencil" title="Edit"></i>

但也

<i class="fa fa-pencil" title="Edit"></i> 

然后按预期工作。这解决了我的问题。


1
这对我有用。对我来说,fab fa-envelop没有起作用,但是fa fa-envelop却可以工作。非常奇怪,但解决了我的问题。 - Jordan Schuetz
@JordanSchuetz的“fab”是专门用于品牌图标的,例如“fab fa-facebook-f”。在更新版本中,您会发现“fas”代表“实心”变体,因此在新版本中,您的图标将会被更正为“fas fa-envelope”,在旧版本中则为“fa fa-envelope”。 - AuRise

22

打开你的font-awesome.css文件,其中会有如下代码:

@font-face {
  font-family: 'FontAwesome';
  src: url('../fonts/fontawesome-webfont.eot?v=4.5.0');
  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.5.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.5.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.5.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.5.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular') format('svg');
  font-weight: normal;
  font-style: normal;
}

您必须有以下文件夹:

font awesome -> css
 -> fonts

或者说最简单的方法:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">

13

我之前也遇到了同样的问题,后来解决了,需要使用新版本(5及以上)。

使用这个 CDN 就可以了。

<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.9.0/css/all.min.css" rel="stylesheet">

10

检查你的CSS文件的路径是否正确。最好使用绝对链接,因为它们更容易理解,我们知道起始点在哪里,并且搜索引擎也会偏爱它们而不是相对链接。为了减少带宽,最好使用来自font-awesome服务器的链接:

<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" type="text/css">

此外,如果您使用它,就不需要上传额外的字体到您的服务器上,并且您可以确保指向正确的CSS文件,同时您也可以即时受益于最新的更新。

10
我已经尝试了同样的方法,但仍然只有一个正方形框。 - Vipul Hadiya

8
我正在使用FontAwesome Pro,对我来说解决方案是嵌入`all.min.css`,而不是`fontawesome.min.css`。

1
这是我的问题。 - Noob
免费的话,它是一样的。 - mirek
1
这对我来说可行,使用FontAwesome v5和Angular v10。谢谢。 - Vinicios Torres

7

我遇到了同样的问题。 因此,我在我的HTML代码中添加了一个链接,而不是下载font awesome,然后它起作用了。

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


非常感谢,我花了24小时来修复这个fontawesome。 - Mathew Magante

6

这与v5有关,一些图标在旧版本中无法使用。

这个链接对我管用!

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css">

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