0

ビューファイルに次のように入力します。

<table>
  <tr>
    <td><%= link_to(tag(:div, {:class => "my_class"}), "my_address") %></td>
  </tr>
</table>

結果は次のとおりです:(Firebugで観察)

<table>
  <tbody>
    <tr>
      <td>
        <a href="my_address"></a>
        <div class="my_class"></div>
      </td>
    </tr>
  </tbody>
</table>

divが内側にないのはなぜaですか?

4

4 に答える 4

2

content_tagではなく、を使用する必要がありますtag

<table>
  <tr>
    <td><%= link_to(content_tag(:div, { :class => "my_class" }), "my_address") %></td>
  </tr>
</table>

正直なところ、この場合はブロックを使用することを好みます。

<table>
  <tr>
    <td>
    <%= link_to "my_address" do %>
      <div class="my_class"></div>
    <% end %>
    </td>
  </tr>
</table>

Rails は HTML の検証を一切実行しないため、コードの結果として HTML が有効/無効であるという意味を考慮しませんでした。

于 2011-03-22T12:50:16.360 に答える
2

Is put a div inside a anchor ever right? によると、、アンカー内にインライン要素のみを配置できます。<div>はブロック要素であるため、コードは機能しません。<span>アンカーに入れる予定のデータをラップするようなものを使用する必要があります。

最初の投稿では、HTML5 では<a>ブロックを含めることができると述べていますが、HTML5 を doctype として定義している場合は、さらに深く掘り下げる必要があります。

于 2011-03-22T12:27:18.933 に答える
0

divタグの中に入れることはできません<a><span>または<p>代わりに使用

于 2011-03-22T12:29:30.873 に答える
0

インライン要素内にブロック要素を配置することはできません。div をリンクしようとしている場合は、これを使用する必要があります。

 tag(:div, {:class => "my_class", :onclick => "my_address"})

spanそれ以外の場合は、代わりに使用しますdiv

于 2011-03-22T12:31:05.097 に答える