【问题标题】:Removing whitespace in a block in Haml在Haml中删除块中的空格
【发布时间】:2012-12-28 13:31:56
【问题描述】:

我有这个:

= link_to user_path(f.object.user) do
  %span.hourly-rate>= f.object.user.hourly_rate.to_currency
  \/hour

呈现为:

<a href="/users/44"><span class='hourly-rate'>$16</span>/hour
</a>

结束标记位于单独的行上。这会导致链接在有下划线时看起来很有趣(例如在悬停时)

解决方案是让标记看起来像:

<a href="/users/44"><span class='hourly-rate'>$16</span>/hour</a>

但我还没有在 Haml 中找到这样做的方法。如果可能的话,我宁愿继续使用 link_to 的块形式(我想不使用块会导致代码更加混乱,但此时我对任何事情都持开放态度)。

Tangent:我想如果我使用:ugly Haml 选项,这将得到解决。我的config/environments/development.rb 中有Haml::Template.options[:ugly] = true,我的Gemfile 中有haml-rails(我知道它不包括:ugly,但值得一提),我有一个初始化器;

# config/initializers/haml.rb
Haml::Template.options[:format] = :html5
Haml::Template.options[:ugly] = true

...但代码仍然不难看:(有什么想法为什么不?

【问题讨论】:

  • 链接的样式如何?我怀疑这可能通过更改你的 CSS 而不是你的标记更容易解决。

标签: ruby-on-rails haml


【解决方案1】:

如果您可以接受包含在另一个 div 中的内容,您可以使用这个:

= link_to user_path(f.object.user) do
  %div<>
    %span.hourly-rate>= f.object.user.hourly_rate.to_currency
    \/hour

【讨论】:

  • 这可行,但并不理想。如果没有其他办法,我想我将不得不接受它。我想到的另一件事是手工编写所有 HTML,但都没有吸引力。
【解决方案2】:

javascript 使用 span 来获取其值(在本例中为用户的小时费率) - 它根本没有用于 CSS。

因此,我最终删除了跨度并将用户的小时费率添加为单独字段的data- 属性。所以链接的最终标记是

= link_to f.object.user.hourly_rate.to_currency + "/hour", user_path(f.object.user)

【讨论】:

    猜你喜欢
    • 2011-07-05
    • 2014-07-26
    • 1970-01-01
    • 2011-08-06
    • 2012-08-05
    • 2017-11-17
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多