在div周围包裹锚

时间:2014-01-30 21:12:40

标签: php html anchor implode

我有一个奇怪的问题,在PHP中包围div的锚标签因为锚在div里面。这是代码:

$output .= '<a href="http://google.com">';
$maplist = implode(', ', array_values($rounds));
$output .= '<div class="maplist">' . $maplist . '</div>';
$output .= '</a>';

echo $output;

Html显示如下

 <div class="maplist"><a href="http://google.com"></a>
   <a title="cs_assault" href="link1">cs_assault</a>, 
   <a title="de_aztec" href="link2">de_aztec</a>
   </div>

而不是

<a href="http://google.com">
   <div class="maplist">
   <a title="cs_assault" href="link1">cs_assault</a>, 
   <a title="de_aztec" href="link2">de_aztec</a>
   </div></a>

奇怪的是,当我删除内爆函数时,它会输出它应该。

2 个答案:

答案 0 :(得分:2)

嵌套锚标记在HTML 4中是非法的:http://www.w3.org/TR/html401/struct/links.html#h-12.2.2

任何互动内容都不能嵌套在HTML 5中:http://www.w3.org/html/wg/drafts/html/master/single-page.html#the-a-element 链接计为“交互”元素。

答案 1 :(得分:0)

您可以更改.output以包含div中的链接:

$output .= '<div class="maplist" onclick="location.href='http://google.com';">' . $maplist . '</div>';

这应该可以正常工作,除非你想避免使用javascript。