它是非常糟糕的主意与DIV组TR标签?(Is it really bad idea to group

2019-06-23 19:43发布

我正在开发的应用程序与Backbone.js的视图类中的渲染后返回一个元素。 如果我使用的div或跨度也没关系。 但问题时,我开始渲染对象作为TR行开始。 一个对象应该被渲染到2-3行。 因此,我可以用这个结构?

<table>
    <div>
        <tr>...</tr>
        <tr>...</tr>

    </div>
</table>

Answer 1:

立即div的一个表里面的标签是无效的。 使用TBODY代替



Answer 2:

是的,这是一个非常糟糕的主意。

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元素的数量没有限制)。



Answer 3:

这不是有效的HTML。 不能嵌套块或在一个表内联元件,仅表元素,如<tbody> <tr><thead> 当然,你可以嵌套的<div>在一个表格单元格( <td><th>



文章来源: Is it really bad idea to group tr tags with div?