2013-06-22 260 views
26

我使用(优秀)在我的网站字体,真棒,和它的正常工作,如果我用这种方式:字体真棒和统一

<i class="icon-home"></i> 

但(因为某些原因),我想使用它在Unicode的方式,如:

<i>&#xf015;</i> 

Font Awesome's cheatsheet

但它不工作 - 浏览器显示一个正方形来代替。

我该如何解决这个问题? CSS路径是正确的(作为使用Font Awesome作品的第一种方式)。

编辑:我确实安装了FontAwesome.otf。

+0

请发表的jsfiddle:jsfiddle.net –

+0

我没有访问所有文件现在,我只是想知道如何使用unicode的网页字体。 – matan129

+0

尝试在你的页面上设置:'。 –

回答

31

它不工作,因为<i>&#xf015;</i>根本要求,以显示私人使用的浏览器代码点U + F015使用斜体字体。字体Awesome CSS代码没有任何会影响到这一点。如果您将class=icon-home添加到标记中,您将在FontAwesome字体中获得指定给U + F015的字形,但由于Font Awesome技巧的工作方式,您将获得两次字形。

为了只获得一次字形,您需要使用CSS来请求使用FontAwesome字体,而不触发通过生成的内容添加字形的规则。一个简单的诀窍是使用一个以icon-开头的类名,但不匹配Font Awesome中的任何预定义名称,或与您的CSS或JavaScript代码中使用的任何名称不匹配的名称。例如。,

<i class=icon-foo>&#xf015;</i> 

可替代地,使用CSS代码,所述i元件上设置font-family: FontAwesomefont-style: normal

PS。请注意,根据定义,私用代码点(如U + F015)不具有可互操作的含义。因此,样式表被禁用时,&#xf015;将不会显示为任何字符;浏览器将使用其传递未定义数据的方式,例如可能包含代码点编号的小方框。

+2

+1。在我看来,像FontAwesome这样的符号字体的整体思想与Unicode和Web的预期设计是不同的,并且通常是有害的。 – bobince

+0

+1。使用unicode是否会影响性能?我觉得可以,因为它不需要使用伪元素:在定义内容之前。 – Ced

+0

对于FontAwesome 5,我发现'font-family:FontAwesome;'不再有效。我必须使用'font-family:Font Awesome \ 5 Free;'而不是。 –

1

阅读davidhund的答案上this page后,我想出了您的Web字体装入不正确的是我是错误的路径的问题的解决方案。

这里是什么,他说:

我的第一个猜测是,你包括从 不同(子)域FontAwesome web字体。因此,请确保您在 这些webfont-files上设置了正确的标头:“您需要添加 访问控制 - 允许源标头,将您的域名白名单从 中提取。” https://github.com/h5bp/html5boilerplate.com/blob/master/src/.htaccess#L78-86

而且也看font-gotchas :)

希望我清楚,帮你:)

在同一页上,f135ta说:

。 ..我通过上传文件“fontawesome-webfont.ttf” 到我的网络服务器并安装它像一个regula [R字体..我不知道,如果 其预-REQ的反正用它的一部分,但它为我的作品; -

+1

不能,因为我的网站仍然是本地的,只是一些html。我甚至不需要使用WAMP/XAMPP来检查它。而字体IS本地安装 – matan129

+0

那么路径呢?他们是否正确? **仔细检查**他们! –

+0

他们必须是正确的,因为当我用这种方式使用字体 '' 它的工作原理 – matan129

0

只要在上面加上Jukka K. Korpela的回答,font awesome已经定义了一个css选择器“fa”。你可以简单地做<i class="fa">&#xf015;</i>。这里的前提条件是,FA定义字体风格:正常的,如果你需要斜体,你可以重写喜欢<i class="fa" style="font-style:italic">&#xf015;</i>

20

必须使用fa类:

<i class="fa"> 
    &#xf000; 
</i> 

<i class="fa fa-2x"> 
    &#xf000; 
</i> 
9

对于那些谁可以跨越这个岗位绊倒,您需要设置

font-family:FontAwesome;

在你的CSS选择器的属性,然后统一将工作在CSS精细