如果你想要一个“可编辑的网格”,即一个表结构,允许你使任何行的形式,使用CSS模仿TABLE标记的布局:display:table,display:table-row和display:table-cell 。
没有必要将整个表格包装在一个表单中,并且不需要为表格的每个表面行创建单独的表单和表格。
试试这个:
DIV.table
{
display:table;
}
FORM.tr, DIV.tr
{
display:table-row;
}
SPAN.td
{
display:table-cell;
}
...
(cell data)
(cell data)
...
在FORM中包装整个TABLE的问题是任何和所有的表单元素将在提交时发送(也许这是所期望的但可能不是)。此方法允许您为每个“行”定义一个表单,并在提交时仅发送该行数据。
将FORM标记环绕TR标记(或围绕FORM的TR)的问题是它是无效的HTML。 FORM将仍然允许像往常一样提交,但在这一点上,DOM是破碎的。注意:尝试使用JavaScript获取您的FORM或TR的子元素,它可能会导致意外的结果。
注意IE7不支持这些CSS表样式,IE8将需要一个doctype声明,以使其进入“标准”模式:(尝试这一个或某物等价物)
/p>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
任何其他支持display:table,display:table-row和display:table-cell的浏览器应该显示你的css数据表,就像使用TABLE,TR和TD标签时一样。他们大多数。
请注意,您还可以通过将行组封装在另一个带有display:table-header-group,table-row-group和table-footer-group的DIV中来模拟THEAD,TBODY和TFOOT。
注意:这个方法你唯一不能做的是colspan。