【问题标题】:Rails - using font-awesome iconsRails - 使用字体很棒的图标
【发布时间】:2016-02-13 06:09:45
【问题描述】:

我有一个 rails 4 应用程序,我正在尝试使用其中的字体真棒图标(用于社交媒体登录链接)。

我有:

 /* application.css.css:
 *= require_framework_and_overrides.css.scss
 *= require_self
 *= require_tree .
 */

/* framework_and_overrides.css.css: */
@import "bootstrap-sprockets";
@import "bootstrap";
@import "font-awesome-sprockets";
@import "font-awesome";

在我的 gemfile 中:

gem 'font-awesome-sass', '~> 4.4.0'

我也在使用 bootstrap sass。

在我看来,我尝试:

<%= link_to content_tag(icon('facebook', class: 'facebookauth')) %>

它呈现“>”,中间没有任何内容。

我也试过了:

<%= link_to content_tag icon('facebook', class: 'facebookauth') %>

我得到同样的错误。

当我尝试时:

<%= link_to content_tag(fa_icon('facebook', class: 'facebookauth')) %>
<%= link_to content_tag fa_icon('facebook', class: 'facebookauth') %>

我收到此错误:

undefined method `fa_icon' for

有人知道如何在 Rails 中使用 font-awesome 吗?

新的尝试:

                        <%= link_to  icon('google', id: 'googleauth'), user_omniauth_authorize_path(:google_oauth2) %>

                        <%= link_to icon('linkedin', id: 'linkedinauth'), user_omniauth_authorize_path(:linkedin) %>

                        <%= link_to icon('twitter', id: 'twitterauth'), user_omniauth_authorize_path(:twitter) %>
                    <% end %>   

这可以很好地制作链接,但我正在尝试在图标上设置样式。

我定义了一个名为 :facebookauth 的 CSS div。

当我将上述内容更改为:

<%= link_to icon('facebook', id: 'facebookauth'), user_omniauth_authorize_path(:facebook) %>

或者试试:

<%= link_to icon('facebook', class: 'facebookauth'), user_omniauth_authorize_path(:facebook) %>

链接消失。我想让尺寸更大并使用我的颜色样式。如何在这些链接上添加 CSS?

【问题讨论】:

  • 为什么你的 application.scss 中有gem 'font-awesome-sass', '~&gt; 4.4.0'?还是就在这里?
  • 嗨,那在我的 gem 文件里
  • 嗨。老问题但是...icon("edit fa-lg", class: 'zero') 给了我以下标记:&lt;i class="fa fa-edit fa-lg zero"&gt;&lt;/i&gt;。我猜你的css定义中的'facebookauth'(id或类)有问题,比如“display:none”。

标签: css ruby-on-rails font-awesome fontawesome-4.4.0


【解决方案1】:

助手似乎只是填充了content_tag内容 - 你仍然需要提供一个元素。

From the docs:

content_tag(:li, fa_icon('facebook', class: 'facebookauth'))

如果您想单独使用该图标,您可以单独致电fa_icon

fa_icon "camera-retro"
# => <i class="fa fa-camera-retro"></i>

--

如何按预期使用 gem

所有“网络字体”gem 基本上都执行以下操作:

  1. 创建许多图标的“网络字体”
  2. 创建一个带有类的 CSS 文件,每个类使用带有content: 网络字体的:before 标记

每次调用字体元素之一(使用class)时,实际上只是在:before 前面加上适当的字体引用。

因此,为了做到这一点,您需要一个有效的 HTML 元素。 fa_icon 助手似乎创建了一个&lt;i&gt; 标签——&lt;i class="fa fa-camera-retro"&gt;&lt;/i&gt;。如果你想将它与content_tag 一起使用,你需要为 Rails 提供另一个元素来包装内容。

--

更新

确保它像这样工作:

<%= link_to fa_icon("facebook", text: "Facebook", class: "facebookauth"), your_path %>

我们最近在一个项目中使用了 gem,结果如下:

【讨论】:

  • 嗨 Rich,恐怕这对我来说太先进了。我一点都不明白。我确实想要单独的图标作为链接。这就是为什么我以我尝试的方式提出它。不知道这些建议是什么意思——我相信其他人可能比我自己更了解这些概念是明智的。无论如何,谢谢,但我不知道从哪里开始尝试理解这一点。
  • @rich-peck 的回答是正确的。更明确地说,使用以下代码:&lt;%= link_to your_route_here do = content_tag(:i, fa_icon('facebook', class: 'facebookauth')) %&gt;。有关更多示例,请参阅此 stackoverflow 答案:stackoverflow.com/questions/31326684/…
  • @user2860931 你应该首先复制我写的最上面的一段代码并将其放入你的应用程序中。
  • 谢谢,我试过了。它给出了这个错误:#:0x007ff0b1f4c3e8> 的未定义方法`fa_icon'
  • 这意味着您可能没有安装 gem - 您确定它在您的 gemfile 中吗?
【解决方案2】:

试试这个:

纯 HTML:

<a class="btn btn-lg btn-social btn-github" href="<%= content_tag_url %>">
    <i class="fa fa-facebook"></i> Facebook
</a>

【讨论】:

  • 您好 Eleazar,我想尝试学习如何按预期使用 gem。这看起来可能是某种覆盖。不确定所有样式和格式的用途。无论如何,谢谢,但我认为这可能不适合我。
  • 好吧,这只是使用 HTML 的一种方式。问候!
【解决方案3】:

添加 include FontAwesome::Rails::IconHelperapp/helpers/application_helper.rb

【讨论】:

  • 我试过这个,但得到这个错误:路由错误未初始化常量 FontAwesome::Rails
  • 您添加了 gem "font-awesome-rails",然后如果您使用像 pow 这样的服务器,您是否重新启动了服务器?
  • 您使用的是什么版本的 font-awesome-rails? font-awesome-rails-3.2.1.3?
猜你喜欢
  • 2017-05-02
  • 2017-12-28
  • 2015-04-18
  • 2019-12-20
  • 1970-01-01
  • 1970-01-01
  • 2015-04-02
  • 1970-01-01
  • 2020-07-28
相关资源
最近更新 更多