【问题标题】:Font Awesome & Unicode字体真棒和Unicode
【发布时间】:2013-06-19 17:05:37
【问题描述】:

我在我的网站中使用(优秀的)Font-Awesome,如果我这样使用它,它工作正常:

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

但是(出于某些原因)我想以 Unicode 方式使用它,例如:

<i>&#xf015;</i>

(Font Awesome's cheatsheet)

但它不起作用 - 浏览器会显示一个正方形。

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

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

【问题讨论】:

  • 请发一个 jsfiddle: jsfiddle.net
  • 我现在无法访问所有文件,我只想知道如何使用带有 unicode 的网络字体。
  • 尝试在您的页面上设置:&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;

标签: html css unicode font-awesome


【解决方案1】:

我在使用 unicode 和 fontawesome 时遇到了一个类似的问题。 当我写的时候:

font-family: 'Font Awesome\ 5 Free';
content: "\f061"; /* FontAwesome Unicode */

在 google chrome 上,会出现一个正方形而不是图标。 新版Font Awesome也需要

font-weight: 900;

这对我有用。

发件人:https://github.com/FortAwesome/Font-Awesome/issues/11946

希望这会有所帮助。

【讨论】:

  • 是的,现在需要字体粗细。谢谢。
  • 这救了我。我错过了字体粗细。谢谢巴西尔!
  • Font Awesome 5 现在需要 font-weight:900 表示纯色
  • 成功了!多谢!真的很奇怪,有些工作没有,有些需要重量....
  • 没有其他更改不适合我,因为我想将它用于placeholder。我已经厌倦了尝试不同的更改,只有 font-family: 'Font Awesome\ 5 Free'font-weight: 600 更改真的有效! +1 顺便说一句,如果你想在所有输入中使用,你应该用 !important 覆盖其他规则。
【解决方案2】:

它不起作用,因为&lt;i&gt;&amp;#xf015;&lt;/i&gt; 只是要求浏览器使用斜体字体显示私人使用代码点 U+F015。 Font Awesome CSS 代码没有任何影响这一点。如果您将class=icon-home 添加到标签中,您将获得FontAwesome 字体中分配给U+F015 的字形,但由于Font Awesome 诡计的工作方式,您将获得两次。

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

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

或者,使用在 i 元素上设置 font-family: FontAwesomefont-style: normal 的 CSS 代码。

PS。请注意,根据定义,诸如 U+F015 之类的私有使用代码点没有可互操作的含义。因此,当样式表被禁用时,&amp;#xf015; 将不会显示为任何字符;浏览器将使用它的方式来传达未定义数据的存在,例如一个可能包含代码点编号的小盒子。

【讨论】:

  • PS+1。在我看来,像 FontAwesome 这样的符号字体的整个想法与 Unicode 和 Web 的预期设计格格不入,而且通常是有害的。
  • +1。使用 unicode 会影响性能吗?我觉得它可以,因为它不需要使用伪元素 :before 并定义内容。
  • 使用 FontAwesome 5,我发现 font-family: FontAwesome; 不再有效。我不得不改用font-family: Font Awesome\ 5 Free;
  • @TomWarner 的评论非常有帮助。这是设置font-family 的正确方法。注意 - 可能还需要将 font-weight 设置为非正常值。就我而言,我需要将其设置为粗体才能显示图标。
  • @aberkow 感谢您提供字体粗细提示。我可以确认它现在可以工作了。
【解决方案3】:

您必须使用fa 类:

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

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

【讨论】:

    【解决方案4】:

    对于那些可能偶然发现这篇文章的人,你需要设置

    font-family: FontAwesome; 
    

    作为 CSS 选择器中的一个属性,然后 unicode 将在 CSS 中正常工作

    【讨论】:

    • 就我而言,我必须将其更改为 font-family: Font Awesome 5 Pro;
    • 是的,这是针对 4.7 版本的。
    • 这是我们都应该做的;)谢谢!
    【解决方案5】:

    我发现在 Font-Awesome 版本 5(免费)中,您添加了: "font-family: Font Awesome\ 5 Free;" 只有这样它似乎才能正常工作。

    这对我有用:)

    我希望有人觉得这有帮助

    【讨论】:

    • 谢谢!我检查了 Font Awesome CSS,这似乎是答案,但有多种变体(取决于是否购买了专业许可证)。这为我解开了谜团。
    【解决方案6】:

    据我所知,您可以选择三种不同的字体系列,每种字体都有自己的需要应用的权重元素:

    第一

    font-family: 'Font Awesome 5 Brands'; content: "\f373";

    第二

    font-family: 'Font Awesome 5 Free'; content: "\f061"; font-weight: 900;

    第三

    font-family: 'Font Awesome 5 Pro';

    参考这里-https://fontawesome.com/how-to-use/on-the-web/advanced/css-pseudo-elements

    希望这会有所帮助。

    【讨论】:

      【解决方案7】:

      请务必先加载 FontAwesome 样式。

      font-family: "Font Awesome 5 Free";
      font-weight: 400;
      content: "\f007";
      

      你可以在这里找到 FontAwesome 的解释: https://fontawesome.com/how-to-use/on-the-web/advanced/css-pseudo-elements

      【讨论】:

        【解决方案8】:

        我发现这行得通

        content: "\f2d7" !important;
        font-family: FontAwesome !important;
        

        如果没有 !important 对我来说似乎不起作用。

        这是一个关于如何使用 Unicode https://www.youtube.com/watch?v=-jgDs2agkE0&feature=youtu.be 更改社交图标的教程

        【讨论】:

          【解决方案9】:

          请记住,您可能还需要包含版本号,因为您可能会使用以下任何一种:

          font-family: 'Font Awesome 5 Pro';
          

          font-family: 'Font Awesome 5 Free';
          

          【讨论】:

            【解决方案10】:

            在最新的 5.13 中有所不同。 你总是像往常一样......

            font-family: "Font Awesome 5 Free";
            content: "\f107";
            

            但是现在有区别了...而不是使用 font-weight: 500;你正在关注这个:

            font-family: "Font Awesome 5 Free";
            font-weight: 900;
            content: "\f107";
            

            这是为什么呢?我通过在 .fas 类中查找来找出答案,因此您可以通过查看 .fas 类来找出更新的方法,这样您就可以做同样的事情。弄清楚是否有字体粗细和字体系列。来吧,伙计们。这是 5.13 的更新答案。

            【讨论】:

              【解决方案11】:

              this page 上阅读 davidhund 的答案后,我想出了一个解决方案,即您的网络字体未正确加载,我是路径错误的问题。

              他是这样说的:

              我的第一个猜测是您包含来自 不同的(子)域。因此,请确保您设置了正确的标题 那些 webfont 文件:“你需要添加 Access-Control-Allow-Origin 标头,将您所在的域列入白名单 从中提取资产。” https://github.com/h5bp/html5boilerplate.com/blob/master/src/.htaccess#L78-86

              另外看看font-gotchas :)

              希望我清楚并帮助你:)

              在同一页,f135ta说:

              ...我通过上传文件“fontawesome-webfont.ttf”解决了这个问题 到我的网络服务器并像普通字体一样安装它..我不知道是否 无论如何,它是使用它的先决条件的一部分,但它对我有用;-

              【讨论】:

              • 不可能,因为我的网站仍然是本地的,只是一些 html。我什至不需要使用 WAMP/XAMPP 来检查它。并且字体安装在本地
              • 那么路径呢?他们是正确的吗? 仔细检查他们!
              • 它们一定是正确的,因为当我以这种方式使用字体时 '' 它可以工作
              • 你的 .htaccess 呢?您也可以将其放在本地目录中,但您需要使用 WAMP 或 XAMPP 等本地服务器
              • 我会检查一下,可能需要一些时间。感谢您的帮助!
              【解决方案12】:

              您还可以将 FontAwesome 图标与 CSS3 伪选择器一起使用,如下所示。

              确保将 font-family 设置为 FontAwesome,如下所示:

              table.dataTable thead th.sorting:after {font-family: FontAwesome;}
              

              要使上述工作正常进行,您必须执行以下操作:

              1. 在此处下载 FontAwesome css 库FontAwesome v4.7.0
              2. 从 zip 文件中提取并包含到您的应用程序根文件夹中,两个文件夹如下所示:
              3. 仅引用应用程序&lt;head&gt;&lt;/head&gt; 部分中的 css 文件夹,如下所示:

              【讨论】:

              • 代码图片没有帮助。它们不能被复制/粘贴。
              【解决方案13】:

              对于使用 Font Awesome 4.7 版的用户,

              css_selector::before{
              content:"\f006";
              font-family:"fontawesome";
              font-weight:900;
              }
              

              【讨论】:

                【解决方案14】:

                只是添加上面的 Jukka K. Korpela 答案,字体真棒已经定义了一个 css 选择器“fa”。你可以简单地做 &lt;i class="fa"&gt;&amp;#xf015;&lt;/i&gt; 。这里要注意的是,fa 定义了 font-style:normal,如果你需要斜体,你可以像 &lt;i class="fa" style="font-style:italic"&gt;&amp;#xf015;&lt;/i&gt; 一样覆盖

                【讨论】:

                  【解决方案15】:

                  通过使用 css,您可以通过 Unicode 添加您的图标

                  content: '\f144';
                  font-family: FontAwesome;
                  

                  这会起作用

                  【讨论】:

                    【解决方案16】:

                    添加字体粗细 900..它对我有用

                    font-weight: 900;
                    

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 2020-04-01
                      • 1970-01-01
                      • 2016-02-10
                      • 2023-04-03
                      • 2020-09-24
                      • 2019-02-12
                      • 2021-06-04
                      • 1970-01-01
                      相关资源
                      最近更新 更多