37

根据 W3C,表内是否允许使用div ?

4

5 回答 5

43
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  <head>
    <title>test</title>
  </head>
  <body>
    <table>
      <tr>
        <td>
          <div>content</div>
        </td>
      </tr>
    </table>
  </body>
</html>

此文档已成功检查为 XHTML 1.0 过渡版!

于 2010-06-04T13:37:28.900 回答
39

您不能将 adiv 直接放在a 内table,如下所示:

<!-- INVALID -->
<table>
  <div>
    Hello World
  </div>
</table>

但是,将 adiv放在 atdth元素中是可以的:

<!-- VALID -->
<table>
  <tr>
    <td>
      <div>
        Hello World
      </div>
    </td>
  </tr>
</table>
于 2010-06-04T13:38:04.540 回答
19

您可以将div标签放在td标签内,但不能直接放在tabletr标签内。

例子:

这有效:

<table>
  <tr>
    <td>
      <div>This will work.</div>
    </td>
  </tr>
<table>

这不起作用:

<table>
  <tr>
    <div> this does not work. </div>
  </tr>
</table>

这也不起作用:

<table>
  <div> this does not work. </div>
</table>

于 2010-06-04T13:36:54.893 回答
9

正如其他人在这里指出的那样,虽然您可以将 DIV 放在 TD 中(而不是 TABLE 的直接子代),但我强烈建议不要将 DIV 用作 TD 的子代。当然,除非你喜欢头痛。

当你将两者结合起来时,关于宽度、边距、边框等的处理方式存在许多跨浏览器差异。我无法告诉你有多少次我不得不为客户清理这种标记,因为他们无法让他们的 HTML 在这个或那个浏览器中正确显示。

再说一次,如果您对事物的外观不挑剔,请忽略此建议。

于 2010-06-04T13:50:56.900 回答
2

这是允许的,因为TD可以包含内联块元素。

在这里您可以在参考中找到它:http: //xhtml.com/en/xhtml/reference/td/#td-contains

于 2010-06-04T13:36:02.193 回答