【问题标题】:How do I nest a div inside an anchor tag in rails如何在rails的锚标签内嵌套一个div
【发布时间】:2011-03-05 15:58:36
【问题描述】:

我是一名 Ruby on Rails 业余爱好者,我正在尝试将 div 标签嵌套在 rails 中的锚标签内。我可以让它工作,但是我编写的结果代码很糟糕,而且肯定不是 Rails 方式。

这是我试图在 HTML 中完成的一个示例:

<a href="tell-a-friend">
<div id="tellafriend">
    <strong>Strength in Numbers.</strong><br />
    Suggest a friend or colleague to participate in this survey.
</div>
</a>

这是我在 ERB 中想出的:

<%= link_to content_tag(:div, 
    content_tag(:strong, 'Add your labor rates now.') + 
    content_tag(:br, '') + ' We are counting on you.', :id => 'participate'), 
participate_path %>

或者在这里我混合了一些 HTML 和 ERB:

<%= link_to '<div id="results">
    <strong>See the results.</strong><br />
    Knowledge is power.
</div>'.html_safe, results_path %>

我的两个解决方案看起来都非常丑陋...但是将其移入帮助程序似乎不是正确的做法,因为 DIV 的内容发生了变化,并且我在一页上只显示了其中的 3 个.

因此,如果有人知道更好的方法来做到这一点,我很感兴趣!我可以任意组合 HTML、ERB 和 HAML。

【问题讨论】:

    标签: html ruby-on-rails haml erb


    【解决方案1】:

    链接作为块工作:

    <% link_to '', my_path do %>
      <div></div>
    <% end %>
    

    【讨论】:

    • 哇,我不敢相信我不知道。 /cry 更新:刚刚在我的 rails3 beta4 应用程序中对其进行了测试……需要稍作调整才能使其正常工作。本质上是 ...
    • 是的,很抱歉。 link_to 的 '' 部分根本不应该在一个块中。而且 Rails 3 可能在开头行中使用
    【解决方案2】:

    仅供参考: 围绕 DIV 的 ANCHOR 在 HTML 4.01 Transitional 中是不合法的(但它在 HTML5 中?)因此请确保您使用正确的文档类型并在目标浏览器上进行测试( s)!

    <head>
    <title>a</title>
    </head>
    <body>
    <div>
    <a href="www.google.com">
    <div>test</div>
    </a>
    </div>
    </body>
    </html>
    

    您可以在W3C Validator 运行它并更改 DOCTYPE 以查看它对哪种模式有效。 (确保同时指定编码以消除警告:-)

    【讨论】:

    • 有趣,但这是一个特定于 Rails 的问题。
    • 你也可以在 div 前面放一个空的锚标签。
    【解决方案3】:

    最糟糕的是:

    <%= link_to(url, html_options = {}) do %>
       # name
    <% end %>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-18
      • 2011-07-10
      • 1970-01-01
      • 2019-10-17
      • 2020-07-20
      相关资源
      最近更新 更多