在IE 6,7和8中,表格周围的锚标记无法点击

PHL*_*LAK 13 anchor xhtml html-table

问题:当用一个锚标签围绕一个表时,表及其中的所有内容都不能在IE 6,7和8中单击.如果我不能用div替换表,我该怎么解决这个问题?

示例代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">

<head>
  <title>Test</title>
</head>
<body>

<a href="http://www.google.com">
  <table height="35">
    <tr>
      <td>I'm a link in a table, bet you can'tclick me!</td>
    </tr>
  </table>
</a>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Lar*_*nal 9

您可以在表上添加JavaScript onclick事件处理程序,以执行与链接相同的操作.

编辑:删除了初始建议,因为它在其他浏览器中表现不佳.


Guf*_*ffa 7

您不能在锚标记内部有一个表,因为该表是块标记,而锚是内联标记.块标签不会进入内联标签,因此代码无效.用div元素替换表也不起作用,因为它们也是块元素.

标准规定了有效代码应该如何工作,而不是无效代码应该如何工作.不同的浏览器有不同的方法来充分利用这种情况.在这种情况下,浏览器的一种替代方法是将锚移动到表内,另一种方法是将表移出锚.任何一种方法都会在某些情况下产生所需的结果,但在其他情

将块元素可靠地放入锚点的唯一方法是默认使用一个inlinde元素的元素,并使用CSS将两个元素转换为块元素:

<a href="http://www.guffa.com" style="display:block;">
  <span style="display:block;">Eat me</span>
</a>
Run Code Online (Sandbox Code Playgroud)

代码是有效的,因为默认情况下这两个元素都是内联元素,并且在应用样式后它可以工作,因为块元素可以在另一个块元素内.