将tr标签与div分组真的是一个不好的想法吗?

24
我正在使用Backbone.js开发应用程序。视图类在渲染后只返回一个元素。如果我使用div或span,这是可以的。但是当我开始将对象呈现为tr行时,问题就出现了。一个对象应该呈现为2-3行。那么我能使用这种结构吗?
<table>
    <div>
        <tr>...</tr>
        <tr>...</tr>

    </div>
</table>
3个回答

49
是无效的,应该使用
标签中直接使用代替。

19
在表格中,我可以使用多个tbody标签吗? - syabro
18
是的,它不会造成任何伤害。 - Gwyn Howell
7
谢谢。我也在这里找到了一个很好的例子:https://dev59.com/_HA75IYBdhLWcg3w1sz2 - syabro

7

是的,这是一个非常糟糕的想法。

HTML规范不允许div元素成为表格元素的子元素,因此会触发浏览器中的错误恢复程序。

给出以下输入:

<table>
  <tr><td>1</td></tr>
<div>
  <tr><td>2</td></tr>
  <tr><td>3</td></tr>
</div>
  <tr><td>4</td></tr>
<div>
  <tr><td>5</td></tr>
  <tr><td>6</td></tr>
</div>

火狐浏览器生成的DOM(你可以使用检查元素功能查看)将如下所示:
<div>
  </div><div>
  </div><table>
  <tbody><tr><td>1</td></tr>
<tr><td>2</td></tr>
  <tr><td>3</td></tr>

  <tr><td>4</td></tr>
<tr><td>5</td></tr>
  <tr><td>6</td></tr>

</tbody></table>

请注意,div元素已从表格中移除并放置在其前面。这使它们无法用于操作行。
HTML提供了thead、tfoot和tbody元素来分组表格行。使用适当的元素替代div元素(您只能有一个thead和一个tfoot,但是对于tbody元素没有限制)。

0

这不是有效的HTML。您不能在表格中嵌套块或内联元素,只能使用表格元素,例如<tbody><tr><thead>。当然,您可以在表格单元格(<td><th>)中嵌套一个<div>


1
我知道可以在td中嵌套<div>。我的问题是如何分组tr标签,div只是个例子。 - syabro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接