我正在用Backbone.js开发应用程序,视图类在渲染后返回一个元素。如果我使用div或span,这是可以的。但当我开始将对象渲染为tr行时,问题就开始了。一个对象应该渲染到2-3行。那么我可以使用这个结构吗?
<table>
<div>
<tr>...</tr>
<tr>...</tr>
</div>
</table>发布于 2012-04-21 18:44:34
table标记中紧邻的div无效。改用tbody
发布于 2012-04-21 18:50:50
是的,这是一个非常糟糕的想法。
HTML规范不允许div元素作为table元素的子元素,因此它会在浏览器中触发错误恢复例程。
给定以下输入:
<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>Firefox将生成DOM (您可以使用Inspect Element特性查看)将如下所示:
<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元素已从表中删除,并放在表的前面。这使得它们在操作行时变得无用。
超文本标记语言提供了对表行进行分组的thead, tfoot and tbody元素。使用其中适当的元素,而不是div元素(您只能有一个thead和一个tfoot,但对tbody元素的数量没有限制)。
发布于 2012-04-21 18:47:18
这不是有效的HTML。不能在表中嵌套块或内联元素,只能嵌套表元素,如<tbody>、<tr>或<thead>。当然,您可以在表格单元格(<td>或<th>)中嵌套<div>。
https://stackoverflow.com/questions/10258202
复制相似问题